ray
ray

Reputation: 2045

iOS: Text is not displayed inside of a rotated UITextField

I have created a UITextField with Interface Builder. In viewDidLoad, I rotate the text field to match the landscape view we need:

name.transform = CGAffineTransformMakeRotation(-(M_PI/2));

Unfortunately, this does not bring the text with it. The text sits outside of the textfield, behind the background, as seen below.

Note the where the suggestion box is.

Based on other questions here at StackOverflow, I have tried:

name.textAlignment = UITextAlignmentLeft;
name.textAlignment = UITextAlignmentRight;

and this additional function:

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation{
    name.textAlignment = UITextAlignmentLeft;
    name.textAlignment = UITextAlignmentRight;
}

Neither solution works.

-----UPDATE-----

I was able to just orient the nib for landscape rather than portrait, and that solved the problem. However, this seems like a bug. I'd assume a rotated UITextField should bring the text with it.

Upvotes: 0

Views: 665

Answers (1)

Jesse Rusak
Jesse Rusak

Reputation: 57168

Why are you rotating the text field manually? Just let your UIViewController do its normal rotation behaviour (which transforms the view controller's main view) and all the subviews will be usable in landscape.

Upvotes: 2

Related Questions