mar*_*son 9 cocoa-touch uitextfield autolayout ios7
可以在此处找到演示以下问题的示例项目:https://github.com/markdorison/UITextFieldContentSizeExample/
我试图让UITextField使用自动布局增加/缩小其包含的文本内容的宽度.我创建了优先级为749的前导和尾随约束(而不是默认值:1000).我也尝试将这些约束的优先级一直降低到1,但这似乎对行为没有明显的影响.

通过监听UIControlEventEditingChanged事件,我触发了intrinsicContentSize的重置:
- (IBAction)textFieldDidChange:(UITextField *)textField {
[UIView animateWithDuration:0.1 animations: ^{
[textField invalidateIntrinsicContentSize];
}];
}
Run Code Online (Sandbox Code Playgroud)
这种方法几乎可行.有两个问题:
我正在设置一个占位符.无论占位符是多宽,UITextField的intrinsicContentSize的宽度都不会低于它.因此,如果占位符的宽度为130,并且我开始键入,则文本视图的宽度将保持为130,直到我输入的内容达到大于130的宽度; 在此之后,文本视图将增长.
在我的例子中,我在UITextField下面放置了一个UITextView.当我输入UITextField时,其宽度按预期增长.然后我可以点击UITextView并编辑文本.如果我然后返回并编辑UITextView,它的宽度不再按预期增长/缩小.UITextField的intrinsicContentSize属性返回的值来自标准的整数,如{192, 28}to {191.536, 27.959999}.
任何帮助,将不胜感激!
我正在设置一个占位符.无论占位符是多宽,UITextField的intrinsicContentSize的宽度都不会低于它.因此,如果占位符的宽度为130,并且我开始键入,则文本视图的宽度将保持为130,直到我输入的内容达到大于130的宽度; 在此之后,文本视图将增长.
我认为你必须使用的UITextField子那里你去设置instrinsicContentSize,覆盖的默认行为intrinsicContentSize是明显的大小根据占位符方法.
| 归档时间: |
|
| 查看次数: |
4164 次 |
| 最近记录: |