我有一个简单的ViewController
,其中只包含其默认视图,背景图片放在其上,我有以下updateViewConstraints
方法,可以在iOS 7
设备上完美运行(无需任何调用) to setNeedsXXX方法):
-(void) updateViewConstraints {
[super updateViewConstraints];
[self.view removeConstraints:self.view.constraints];
NSDictionary *viewsDict = @{@"bgImage":self.bgImageView};
NSArray * constraints;
constraints = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|[bgImage]|" options:0 metrics:nil views:viewsDict];
[self.view addConstraints:constraints];
constraints = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|[bgImage]|" options:0 metrics:nil views:viewsDict];
[[self.view addConstraints:constraints];
}
但是,此方法在iOS 8
设备上无法正常工作,背景图像向上移动并且不适合。
任何想法都会受到高度赞赏。
答案 0 :(得分:1)
这一行:[self.view removeConstraints:self.view.constraints];
在iOS 8上移除了比在iOS 7上更多的内容。修复此问题的简单方法是添加一个数组,其中包含您添加到视图中的约束并仅删除这些约束。
也许您甚至可以完全删除此行,但这取决于您的应用程序。