不使用自动布局的约束?

Posted

技术标签:

【中文标题】不使用自动布局的约束?【英文标题】:Constraints without using auto-layout? 【发布时间】:2016-04-26 10:39:41 【问题描述】:

我没有使用自动布局,我想知道是否可以在 UILabelUITextView 之间指定约束。我尝试了提到的here,但我得到了一个错误View hierarchy unprepared for constraint,所以我查了一下,发现this,接受的答案说我试图添加约束的视图必须是子视图,如果这是正确的如何添加约束,以便我的UITextViewX position 根据UILabel 的高度设置?我会发一张图片,让大家有个清晰的思路:

现在我不知道UILabel 是单行还是几行,我希望我的UITextView 相应地调整它的X 位置。这是我添加的代码,因为我刚刚了解它,请告诉我是否正确:

NSLayoutConstraint *xConstraint=[NSLayoutConstraint constraintWithItem:self.tvNewsDetails attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.lblNewsTitle attribute:NSLayoutAttributeBottom multiplier:0.45 constant:0];

[self.tvNewsDetails addConstraints:@[xConstraint]];

【问题讨论】:

你必须尝试视觉格式化方法。这是苹果推荐的,如果不使用自动布局,你将无法完成。 查看***.com/questions/36606205/… 约束是驱动自动布局的东西。你不能没有另一个。你的意思是你想在没有界面生成器的情况下使用约束? 这与 IB 无关,我只是想设置约束(虽然没有自动布局)。 @Paulw11 - 所以我不能在没有自动布局的情况下添加约束? 【参考方案1】:

首先为UILabel 设置前导、尾随、顶部、底部。在右侧角属性检查器 Line = 0 和换行符 = word wrap

然后为UITextview 设置约束前导、尾随、顶部、底部。如果UITextview 高度是固定大小,则表示为UITextview 设置高度。

必须将这两个组件都放在UIScrollview中。

它会灵活,而标签高度会增加。

【讨论】:

以上是关于不使用自动布局的约束?的主要内容,如果未能解决你的问题,请参考以下文章

UIScrollView 不使用自动布局约束

UIScrollView 不使用自动布局约束

Masonry自动布局:复合约束

具有自动布局约束的 UITableViewCell 子类大小不正确

使用自动布局和约束更改位置

为啥我会在不应为 size 类安装的约束上收到自动布局错误?