UITextField *theLastNameTF = [[UITextField alloc]init];
theLastNameTF.borderStyle = UITextBorderStyleNone;
theLastNameTF.font = [UIFont fontWithName:@"Helvetica-neue" size:24.0];
theLastNameTF.textColor = [UIColor grayColor];
theLastNameTF.textAlignment = NSTextAlignmentLeft;
[theScrollView addSubview:theLastNameTF];
上記のコードを使用してテキストフィールドを作成しています。テキストフィールドの下に行を表示する必要があるため、灰色の UILabel をテキストフィールドに追加しています。
-(void)addLineToTextField:(UITextField *)theTextfield
{
UILabel *theSeparatorLine = [[UILabel alloc]initWithFrame:CGRectMake(0, theTextfield.frame.size.height-0.5, theTextfield.frame.size.width, 0.5)];
theSeparatorLine.frame = CGRectIntegral(theSeparatorLine.frame);
theSeparatorLine.autoresizingMask = UIViewAutoresizingFlexibleWidth;
theSeparatorLine.backgroundColor = kCS_LightGrayColor;
[theTextfield addSubview:theSeparatorLine];
theSeparatorLine = nil;
}
テキストフィールドで問題に直面しています。テキストの入力中に、テキストが半分表示され、カーソルがテキストの左側に移動しません。
画像を参照してください。「arun... arun 123」と入力しました。予想どおり、カーソルは 123 の左側にあるはずですが、カーソルはそれ以上移動しません。
どうすればこれを修正できますか?
編集
このコードは、UI をリフレームするためのものです (向き変更メソッド内で layoutViewForCurrentorientation() を呼び出します)。
-(void)layoutViewForCurrentorientation
{
if ([[UIApplication sharedApplication]statusBarOrientation] == UIInterfaceOrientationPortrait) {
[self potraitUI];
}
else
{
[self landscapeUI];
}
}
行を削除するとtextField.font = [UIFont fontWithName:@"Helvetica-neue" size:24.0];
.I 問題は解決しますが、テキストフィールドに大きなフォントが必要です。