我在try 使用自动布局实现一些非常基本的布局行为时遇到了麻烦.我的视图控制器在IB中如下所示:

在此处输入图像描述

最上面的标签是标题标签,我不知道会有多少行.我需要标题标签来显示所有的文本行.我还需要另外两个标签和小图片被放置在标题的正下方,不管它有多高.我已经设置了标签和小图像之间的垂直间距约束,以及标题标签和其superview之间的顶部间距约束,以及小图像和其superview之间的底部间距约束.白色UIView没有高度约束,因此它应该垂直拉伸以包含其子视图.我已将标题标签的行数设置为0.

如何调整标题标签的大小以适应字符串所需的行数?我的理解是,我不能使用setFrame方法,因为我使用的是自动布局.我必须使用自动布局,因为我需要那些其他视图保持在标题标签下方(因此需要约束).

我怎样才能做到这一点?

推荐答案

UILabel上使用-setPreferredMaxLayoutWidth%,自动布局应该可以处理睡觉.

[label setPreferredMaxLayoutWidth:200.0];

UILabel documentation on preferredMaxLayoutWidth.

Update:

只需将故事板中的height约束设置为Greater than or equal to,无需设置PferredMaxLayoutWidth.

Ios相关问答推荐

Swift:从字符串目录获取带有参数的本地化字符串

使用CGAffineTransform旋转视图只起作用一次吗?

有没有办法观察滚动的SwiftUI图表的内容偏移量?

如果条件不满足,S从@ViewBuilder返回什么?

如何在wiftUI中管理导航栈?

如何在SwiftUI中基于嵌套视图中的状态动态显示外部视图的内容?

在 React Native iOS 中加载多个 JS 包

当虚拟对象附加到其网格时,如何刷新创建 ARView 的 SwiftUI UIViewRepresentable?

将 Riverpod 从 StateNotifier 修复为 NotifierProvider 以及应用程序生命周期监控

如何制作支持不同语言的iOS应用

Flutter动画放大图

从父母到子元素的 Swift Pass 事件

在 UICollectionView 上从右到左对齐

在设备上卸载 ios 应用程序后如何在 ios 中保留 identifierForVendor?

以编程方式获取故事板 ID?

正确的领域使用模式/最佳实践?

如何在 Objective-C (iOS) 中的图像上写文本?

iOS在应用程序中下载并保存图像

iOS 7 及更高版本: for each 视图控制器设置状态栏样式

由于 GoogleSignIn、AdMob 提交应用程序时 iOS 10 GM 发布错误应用程序try 在没有使用说明的情况下访问隐私敏感数据