本文介绍了水平调整的UITextField使用自动布局文本的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是示例项目来演示跌破发行可以在这里找到:https://github.com/markdorison/UITextFieldContentSizeExample/

我试图有一个的UITextField成长/它包含了使用自动布局的文本内容缩减其宽度。我创建了领先,并与749优先尾随约束(而不是默认:1000)。我也曾尝试降低这些限制的优先一路下降到1,但是这似乎并没有对行为产生显着影响。

通过听取UIControlEventEditingChanged事件,我触发intrinsicContentSize的复位:

   - (IBAction为)textFieldDidChange:(*的UITextField)文本框{
    [UIView的animateWithDuration:0.1动画:^ {
        [文本框invalidateIntrinsicContentSize]
    }];
}

此方法的几乎的工作。这里有两个问题:


  1. 我设置的占位符。然而宽的占位符是,所述的UITextField的intrinsicContentSize的宽度决不会低于它。所以,如果占位符的宽度是130,我开始键入,文本视图的宽度将保持在130到什么我打字达到的宽度比130越大;在此之后的文本视图将增长。


  2. 在我的例子中,我已经放在下面的UITextField一个UITextView。当我在键入的UITextField,其宽度的增长预期。那么我可以挖掘到的UITextView和编辑文本。如果我再回去和编辑的UITextView,它的宽度不再增长/收缩预期。该值被从被标准的前瞻性整数像 {192,28} ,到 {191.536,27.959999}


任何帮助将是AP preciated!


解决方案

I think you'll have to use a UITextField subclass where you get to set the instrinsicContentSize, overriding the default behavior of the intrinsicContentSize method which is evidently to size based on the placeholder.

这篇关于水平调整的UITextField使用自动布局文本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

05-31 12:47