3

我有一个看法:

我的观点

label1 和 label2 之间存在布局约束。按下按钮将文本视图中的文本添加到 label1。之后,标签 1 被调整大小以适合文本(调用 sizeToFit)。调整大小后,约束似乎不起作用:

约束

有人知道如何使约束起作用吗?

我的代码:

@interface ViewController ()
{
    CGFloat _width;
}
@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
}

- (void) viewDidAppear:(BOOL)animated
{

    _width = self.l1.frame.size.width;
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
- (IBAction)addText:(id)sender {
    self.l1.text = [NSString stringWithFormat:@"%@ %@", self.l1.text, self.text.text];
    self.l1.frame = CGRectMake(self.l1.frame.origin.x, self.l1.frame.origin.y, _width, 0);
    [self.l1 sizeToFit];
}
@end
4

2 回答 2

4

我找到了原因:高度约束等于标签 1 的 40。当我将其更改为大于或等于时,所有其他约束都可以正常工作。

于 2012-10-19T12:03:58.453 回答
0

我有一个类似的问题,其中一个 UIImageView 位于几个 UILabelViews 的顶部。约束设置为在顶部图像和下面的标签堆栈之间保持很小的距离。

问题是,当将未知图像大小加载到 UIImage 中时,高度会发生变化,但要跟随的标签并没有向下推,而是被图像覆盖。

我试图删除 UIImageView 的设置高度,但 XCode 不允许我这样做。

我通过将显式 UIImageview 高度约束的优先级降低到 1 解决了这个问题。

之后,标签沿着 ViewController 向下移动,图像和它们之间的空间均匀,正如预期的那样。

于 2013-07-10T14:29:53.140 回答