在我的应用程序中,我有多个 textField。当我输入小文本时,它会正常工作,但是当输入大文本时,文本字段的大小会改变。
像这样
带小文字
带有大文本
是的,它只发生在 iOS6 中,而不是 iOS5 中。
更新
我不知道怎么做,但我已经在 ios6 屏幕中更改了我的约束属性,它现在可以正常运行了。感谢您的帮助。
在我的应用程序中,我有多个 textField。当我输入小文本时,它会正常工作,但是当输入大文本时,文本字段的大小会改变。
像这样
带小文字
带有大文本
是的,它只发生在 iOS6 中,而不是 iOS5 中。
更新
我不知道怎么做,但我已经在 ios6 屏幕中更改了我的约束属性,它现在可以正常运行了。感谢您的帮助。
尝试使用这个。UITextField
但没有提供任何选项来使其成为多行文本框。所以你必须和UITextView
.
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
CGSize size = [txtView.text sizeWithFont:txtView.font];
CGRect f = txtView.frame;
f.size.height = ceil(size.width/f.size.width)*size.height;
txtView.frame = f;
}
并了解更多信息..
否则,如果您不想在下一行进行,请使用此代码。
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
CGSize boundingSize = CGSizeMake(320, CGFLOAT_MAX);
CGSize requiredSize = [textField.text sizeWithFont:[UIFont fontWithName:@"Helvetica" size:20.0f] constrainedToSize:boundingSize
lineBreakMode:NSLineBreakByWordWrapping];
CGFloat requiredHeight = requiredSize.height;
CGRect frame1;
frame1 = txtFld.frame;
frame1.size.height = requiredHeight;
txtFld.frame = frame1;
NSLog(@"%f", frame1.size.height);
return YES;
}
如果您不想更改宽度,则可以通过textField.frame.size.width
财产。
这意味着在扩展到一定宽度后,限制输入
尝试这个
[yourTextField setAdjustsFontSizeToFitWidth:FALSE];
我也面临同样的问题。我必须设置我的文本字段及其相邻 uilabel 的左右约束,以确保我的文本字段在输入大量文本后不会自行调整大小。这是自动布局的问题。以上解决方法都试过了,以上解决方法都不能解决。