【发布时间】:2013-02-11 10:03:13
【问题描述】:
我有一个带有 UIScrollView 的 ViewController。在这个 VC 上,我以编程方式调整滚动视图内的 UILabel 的框架。这是在 viewDidLoad 上完成的。这个 UILabel 来自 VC 的 xib 文件,它不是以编程方式创建的,只是它的框架发生了变化。
当我从这个 VC 转换到另一个,然后返回时,UILabel 的帧被重置为 XIB 的状态。但是它的文本没有重置,它保持我之前设置的相同文本。
我的调查告诉我这发生在 layoutSubviews 上,因为 UILabel 的属性在 willLayoutSubviews 上是正确的,然后在移回 VC 时在 didLayoutSubviews 上重置。
这是预期的行为吗?标签的文本仍然存在但框架被重置是否有原因?这是因为 UIScrollView 在滚动时调用其父视图上的 layoutSubviews 吗?
谢谢
【问题讨论】:
-
您的 xib 是否启用了自动布局?请参阅 this answer 以获取有关查找该设置的帮助。
-
是的,但我希望这样,为 3.5 和 4 英寸 iPhone 格式化我的视图。它不应该只布局一次吗?
标签: ios objective-c uiscrollview layoutsubviews