我有一个观点:

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

有没有人知道如何让约束起作用?
我的coode:
@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发布于 2012-10-19 20:03:58
我已经找到了原因:高度约束等于标签1的40。当我将其更改为大于或等于时,所有其他约束都可以工作。
发布于 2013-07-10 22:29:53
我也遇到过类似的问题,其中一个UIImageView位于多个UILabelViews的顶部。约束被设置为在顶部图像和下面的标签堆栈之间保持较小的距离。
问题是,当将未知大小的图像加载到UIImage中时,高度会发生变化,但随后的标签不会向下推,并且被图像覆盖。
我尝试删除UIImageView设置的高度,但XCode不让我删除。
我通过将显式UIImageview高度约束的优先级降低到1解决了这个问题。
之后,正如预期的那样,标签在ViewController上向下移动,图像和它们自己之间有均匀的空间。
https://stackoverflow.com/questions/12973689
复制相似问题