自iOS 7.1以来,UITextField的水平对齐出现了bug。

3

在尝试水平居中UITextField中的一些文本时,我遇到了一个奇怪(而非常恼人)的错误。

我使用Storyboard放置了一个UITextField,将其设置为纯文本(非属性),并将水平对齐方式设置为居中。文本在Storyboard中正确地对齐(居中),但在不同版本的iOS和模拟器与实际设备之间会产生不同的结果:

iOS 7.0的iPad模拟器:

  • 非编辑模式:居中
  • 编辑模式:居中
  • 退出编辑模式后:居中

iOS 7.1的iPad模拟器:

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

iOS 7.1的iPad Air:

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

在setText之前或之后设置NSTextAlignmentCenter没有效果。

这是iOS 7.1中的一个bug吗?有人遇到了相同的问题或甚至有解决方法吗?

2个回答

1
我在iOS8中遇到了类似的问题,看起来是与使文本可选有关的iOS bug。
如果在Storyboard中使文本可选,则一切都正常工作。如果在Storyboard中不可选,则始终左对齐。
我的UITextView在表格单元格中,我发现我可以在cellForRowAtIndexPath中设置setSelectable:NO,它仍然以正确的方式对齐(在我的情况下居中),并且在Storyboard中可选择。
在模拟器(iOS 7.1和8.1)和设备(iOS 8.1)上进行了测试。

0

我曾经遇到同样的问题,这是我的解决方法。对于UITextView,在代码中设置其文本对齐方式,并调用其方法layoutIfNeeded()。我在设置文本后进行了此操作,如果对任何人有所帮助的话。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接