我在viewDidLoad中使用以下代码创建了一个UIView (其中'secondview‘显然是UIView的名称):
secondview = [[UIView alloc] initWithFrame:self.view.frame];
[secondview setBackgroundColor: [UIColor yellowColor]];
secondview.translatesAutoresizingMaskIntoConstraints = NO;
[self.view addSubview:secondview];然后在viewDidAppear中,我向这个视图添加了约束:
NSLayoutConstraint *constraint = [NSLayoutConstraint constraintWithItem:secondview attribute:NSLayoutAttributeRight
relatedBy:NSLayoutRelationEqual
toItem:self.view
attribute:NSLayoutAttributeRight
multiplier:1.0f constant:-20.0f];
[self.view addConstraint:constraint];但是,约束不会应用于视图(至少我看不到)。取而代之的是,视图似乎只是从屏幕上消失了。但是,如果约束代码被注释掉,视图将再次加载适当的框架(显然没有应用约束)。当将相同的约束应用于Button或ImageView时,这些约束可以完美地应用。这让我认为这个问题是由于创建视图时的'initWithFrame‘造成的,因为按钮和ImageView实际上都不需要指定它的大小。
你的想法是什么?我应该采取不同的做法吗?
发布于 2012-10-09 18:55:17
对于任何遇到这个的人来说...我需要添加多个约束。这就起到了作用。
https://stackoverflow.com/questions/12795457
复制相似问题