根据输入的文本调整 UITextField 的大小和位置

Posted

技术标签:

【中文标题】根据输入的文本调整 UITextField 的大小和位置【英文标题】:Adjust size and position of UITextField according to text entered 【发布时间】:2012-11-29 08:46:59 【问题描述】:

我的应用程序中有一个UITextField,宽度为 150 像素。当用户添加文本时,当文本大小超过textfield的宽度时,textfield的宽度应相应增加,使位置相同,所有输入的文本都能正常显示。我使用了以下代码,但没有运气。

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string

    float width = [textField.text sizeWithFont:textField.font
                             constrainedToSize:CGSizeMake(300, textField.bounds.size.height)].width;

    if (width  > (textField.frame.size.width +50 )) 

        CGRect rect = textField.frame;
        rect.size.width +=10 ;

        textField.frame =rect;
    

    return YES ;

【问题讨论】:

嗨 prerna,你试过 [textView setContentHuggingPriority:NSLayoutPriorityFittingSizeCompression-1.0 forOrientation:NSLayoutConstraintOrientationVertical]; 顺便说一句,它是文本字段。我试过了,但是我的应用程序崩溃了,异常无法识别的选择器发送到实例。 如果输入的文字很长怎么办?那么它应该是多行的,正确的naa? 不提供最大尺寸。 那你应该先设置最大宽度,然后让文本居中对齐,是不是很简单? 【参考方案1】:

正如你所说,它将是固定长度的,那么你可以这样做:

设置UITextField的最大宽度,并使文本居中对齐。

【讨论】:

以上是关于根据输入的文本调整 UITextField 的大小和位置的主要内容,如果未能解决你的问题,请参考以下文章

如何根据 TextField 的可见大小限制 UITextField 的输入文本量?

UITextField 调整大小问题

调整附件输入视图的大小?

自动布局根据文本调整按钮大小并让文本字段填充可用空间

iPhone——获取 UITextField 调整后的字体大小

UISlider 调整以匹配 UITextField 值