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

我没有使用自动布局,我想知道是否可以在 UILabel 和 UITextView 之间指定约束。我尝试了提到的here,但我得到了一个错误View hierarchy unprepared for constraint,所以我查了一下,发现this,接受的答案说我试图添加约束的视图必须是子视图,如果这是正确的如何添加约束,以便我的UITextView 的X 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]];

【问题讨论】:

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

标签: ios objective-c uiview autolayout constraints


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 2012-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多