【发布时间】:2020-05-11 11:53:24
【问题描述】:
有谁知道为什么在将设备旋转到纵向模式时不调用 UITextView.layoutSubviews() ?
当旋转到横向模式时,这些被称为:
- UIViewController.viewWillTransition
- UIViewController.viewDidLayoutSubviews
- UITextView.layoutSubviews
- UILabel.layoutSubviews
但是当旋转回纵向时,UILabel.layoutSubviews() 被调用,而不是 UITextView.layoutSubviews。这是一个空项目,除了这些方法中的痕迹之外没有其他代码。
【问题讨论】:
-
在这种情况下未调用时,您是否发现任何布局问题?
-
没有布局警告。我需要调用 UITextView.layoutSubviews 方法的原因是因为我打算在 UITextView.layoutSubviews() 中有偏移代码,它将垂直居中文本。我也用这个代码进行了测试,并且在从垂直旋转到纵向时,它使用垂直顶部的文本重绘 UITextView,而不调用 layoutSubviews()。我真的不确定在哪里/如何拦截它。
-
如果您在
UIViewController.viewDidLayoutSubviews中调用textView.setNeedsLayout()怎么办? -
那也不行
标签: ios swift landscape-portrait layoutsubviews