我有一个带有 UIScrollView 的 ViewController。在这个 VC 上,我以编程方式调整滚动视图内的 UILabel 的框架。这是在 viewDidLoad 上完成的。这个 UILabel 来自 VC 的 xib 文件,它不是以编程方式创建的,只是它的框架发生了变化。
当我从这个 VC 转换到另一个,然后返回时,UILabel 的帧被重置为 XIB 的状态。但是它的文本没有重置,它保持与我之前设置的文本相同。
我的调查告诉我这发生在 layoutSubviews 上,因为 UILabel 的属性在 willLayoutSubviews 上是正确的,然后在移回 VC 时在 didLayoutSubviews 上重置。
这是预期的行为吗?标签的文本仍然存在但框架被重置是否有原因?这是因为 UIScrollView 在滚动时会在其父视图上调用 layoutSubviews 吗?
谢谢