2017-04-07 121 views
1

我不知道为什么会发生这种情况,但基本上我有一个静态单元格,它由UITextField组成。 inputViewUIPickerView,其inputAccessoryTypeUIToolBarUITextField不会自动调整宽度以适应内容,直到resignFirstResponder被调用?

我创造了它,像这样:

​​

,这是它是如何设立在故事板:

enter image description here

当视图控制器最初加载,textField.text否周期,很适合。然而,当我滚动UIPickerView选择第二排,即半月,文本被切断,像这样:

enter image description here

这不是直到我打完成UIBarButtonItem致电textField.resignFirstRespondertextField的宽度自动exands以适应字符串的内容半月像这样: enter image description here

我不太understan d为什么会发生这种情况?

回答

0

将'前导,尾随,顶部和固定高度约束'设置为您的文本字段,并且您的问题将得到解决!如果你不能设置前后两者,那么你应该设置固定宽度。

+0

但是,设置固定宽度将意味着文本字段不会根据文本内容自动调整其宽度。如果不需要,我不希望文本字段占用很多宽度空间。我认为这是将宽度优先级设置为低于水平拥抱优先级的关键点?我试图用Auto-Layout实现这一点,因为我在单元格的左边缘有'UILabel',它也占用了很多空间。 – Pangu

+0

您也可以设置最小的字体比例或大小,所以如果文本是大字符串,那么它会减小字体大小以适应标签。如果它适合你!在您现在使用的方法中,您发布的第二件事是在picker的didselectrow方法中调用layoutifneeded或layoutsubviews。 – Lion

+0

我的要求是保持字体大小相同,如果文本是一个大字符串,则不要缩放。如前所述,我认为这是通过“拥抱优先”来处理的。 – Pangu

相关问题