ios - 自动布局高度等于 MAX(多个 View 高度)

标签 ios cocoa-touch autolayout

假设我有一个名为 container 的 View 。 container 包含 5 个 UIButtons。我想在 container 上添加一个高度 NSLayoutConstraint,这个高度应该等于其 subview 中最高按钮的 NSLayoutHeightAttribute

我没有看到一个直接的方法来做到这一点。有人有什么想法吗?

最佳答案

每个 subview (按钮)都需要一个约束,指定容器的高度应大于或等于 subview 的高度。为该约束赋予高优先级,例如 UILayoutPriorityRequired(这是默认设置)。

然后再对容器的高度添加一个约束,指定它的高度应为零。为该约束赋予低优先级,例如 UILayoutPriorityLow。由于自动布局会尽量减少未满足约束的错误,因此它会使容器尽可能短,同时仍然满足所有更高优先级的约束。

我在 this gist 中放了一个例子.它产生这样的结果:

example screen shot

蓝色 View 具有固定的高度。 tan view 是 blue views 的 superview 并且它的高度如我上面描述的那样受到限制。我将每个 subview 的底部固定到容器的底部,但您可以改为固定顶部或 Y 中心。

关于ios - 自动布局高度等于 MAX(多个 View 高度),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17117799/

相关文章:

ios - CollectionView 单元出现在 collectionView 之外。

ios - 为按钮提供等宽约束时,自动布局设置不正确

ios - iOS 部署目标在真实设备上的神秘问题

ios - 登录Twitter后如何获取oauth token ?

iOS IPA 重新打包/重新签名 App Store 应用程序

iphone - 适用于 iOS 5/6 的在线实时多人游戏

ios - 如何使文本大小相对于 IOS 中的 View ?

ios - 设置 iOS MPMusicPlayerController 相对于 AVAudioPlayer 的音量

ios - 更新后 Xcode 中 app.dsym 中的警告

ios - iPhone 应用程序的 strip 符号