自iOS 7.1以来的UITextField水平对齐错误

时间:2014-04-14 14:48:06

标签: xcode storyboard uitextfield ios7.1

在尝试将一些文本水平居中在UITextField中时,我遇到了一个奇怪的(也很烦人的)错误。

我使用Storyboard放置了一个UITextField,其中包含纯文本(未归因),将水平对齐设置为居中。文本在故事板中显示正确对齐(居中),但为不同版本的iOS以及模拟器和真实设备之间提供了不同的结果:

iOS 7.0模拟器iPad:

  • 非编辑模式:居中
  • 编辑模式:居中
  • 离开编辑模式后
  • 居中

使用iOS 7.1的模拟器iPad:

  • 非编辑模式:左对齐
  • 编辑模式:居中
  • 编辑模式后
  • 居中

带iOS 7.1的iPad Air:

  • 非编辑模式:左对齐
  • 编辑模式:居中
  • 编辑模式后
  • 左对齐

在setText之前或之后设置NSTextAlignmentCenter无效。

这是iOS 7.1中的错误吗?有没有人遇到同样的问题甚至解决方案?

2 个答案:

答案 0 :(得分:1)

我在iOS8中遇到了类似的问题。看起来像是一个iOS错误,可以选择文本。

如果您在故事板中选择文本,则一切正常。 如果它在故事板中无法选择,那么它总是合理的。

我的UITextView在一个表格单元格中,我发现我可以在cellForRowAtIndexPath中设置setSelectable:NO,它仍然在故事板中正确对齐(在我的情况下居中)并且可选择on。

在模拟器(iOS 7.1和8.1)和设备(iOS 8.1)上测试。

答案 1 :(得分:0)

我有同样的错误,这是我的修复。对于UITextView,在代码中设置其文本对齐方式并调用其方法layoutIfNeeded()。我在设置文本后这样做,如果这对任何人都有影响。

我在iOS 8.4和Xcode 6.4的模拟器上进行了测试。希望它有所帮助!