ios - 约束更新后,UIView 的边界什么时候改变?

标签 ios uiview uiviewcontroller autolayout nslayoutconstraint

在我看来 Controller 的 viewDidLoad , 我正在调整 UIImageView的约束来反射(reflect)其图像的纵横比。完成后,我想知道 ImageView 的更新边界。边界确实在 UI 中更新,但是当 viewWillLayoutSubviewsviewDidLayoutSubviews被调用(每个只被调用一次),边界仍然是我改变纵横比之前的原始边界。我应该何时检查边界并进行相关更改?

最佳答案

更新 viewDidLoad 中的约束后, 使用以下任一更新它们

 [yourImageViewOL setNeedsDisplay];
 [yourImageViewOL layoutIfNeeded];   //Allows you to perform layout before the drawing cycle happens. -layoutIfNeeded forces layout early

然后您可以在 - (void)layoutSubviews; 中查找更新的边界。方法,因为此方法由 layoutIfNeeded 自动调用。

As of iOS 6.0, when constraints-based layout is used the base implementation applies the constraints-based layout, otherwise it does nothing.

关于ios - 约束更新后,UIView 的边界什么时候改变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48123836/

相关文章:

iOS - 仅将 UIView 的一部分保存为 PNG

ios - 你能在本地快速保存一组 ViewControllers (NSKeyedArchiver) 吗?

ios - 如何在没有动画的情况下弹出到 View Controller

ios - UITableView 中的右侧细节不可见

ios - 具有固定大小 View 和自动调整大小 TableView 的自动布局

ios - 可达性和国际漫游

uitableview - UITableView:以编程方式更改页脚 View 的大小不起作用

ios - Xcode Swift 4 中的 UITableViewController 和 UIViewController

ios:onclick tableviewcell 如果 nsuserdefaults 存在转到 View Controller ,否则转到另一个 View Controller

ios - 处理多个 View 的 UIPanGestureRecognizer 手势(一个覆盖另一个)