gpt4 book ai didi

ios - 如何使用自动布局根据 super View 的大小更新 View 的大小约束?

转载 作者:行者123 更新时间:2023-11-29 02:19:34 25 4
gpt4 key购买 nike

我希望将 Controller View 的 subview self.boardView 的大小调整为适合其 super View 的最大正方形。我在 IB 中设置了约束,使 self.boardView 居中,并且我有宽度和高度约束的导出。我正在 Controller 中执行以下操作:

-(void)updateViewConstraints {
[super updateViewConstraints];

const CGFloat W = self.view.bounds.size.width;
const CGFloat H = self.view.bounds.size.height;
const CGFloat S = (W < H) ? W : H;

self.boardViewWidthConstraint.constant = S;
self.boardViewHeightConstraint.constant = S;
}

问题在于 Controller 的 View 边界不一定是最新的(例如,旋转后)。如何/在哪里可以根据 super View 的新大小设置上述约束?

这可能是一个“先有鸡还是先有蛋”的问题,因为在设置新约束之前 View 大小无法更新,但在更新 View 大小之前我无法计算约束。

最佳答案

iOS8 中 updateViewConstraints 的调用方式明显发生了变化,请参阅 Behavior changes for updateViewConstraints in iOS 8 .
我建议尝试

-(void)layoutSubviews {
[super layoutSubviews];

const CGFloat W = self.view.bounds.size.width;
const CGFloat H = self.view.bounds.size.height;
const CGFloat S = (W < H) ? W : H;

self.boardViewWidthConstraint.constant = S;
self.boardViewHeightConstraint.constant = S;
}

关于ios - 如何使用自动布局根据 super View 的大小更新 View 的大小约束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28321906/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com