我试图让它适用于新旧设备iPhone 4s和5s。在两个设备上,它不会在状态栏和图像视图之间显示垂直空间约束。
- (void)viewDidLoad{
CGSize result = [[UIScreen mainScreen] bounds].size;
if(result.height == 480)
{
baseView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
}
if(result.height == 568)
{
baseView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 568)];
}
UIGraphicsBeginImageContext(CGSizeMake(320, 460));
if(result.height == 480)
{
[[UIImage imageNamed:@"newone.png"] drawInRect:CGRectMake(0, 0, 320, 460)];
UIImage *picture = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
self.view.backgroundColor = [UIColor colorWithPatternImage:picture];
}
UIGraphicsBeginImageContext(CGSizeMake(320, 548));
if(result.height == 568)
{
[[UIImage imageNamed:@"newone.png"] drawInRect:CGRectMake(0, 0, 320, 548)];
UIImage *picture = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
self.view.backgroundColor = [UIColor colorWithPatternImage:picture];
//[self.view addConstraints:[NSLayoutConstraint
//constraintsWithVisualFormat:@"V:|-190-[picture]-280-|"
//options:NSLayoutFormatDirectionLeadingToTrailing
// metrics:nil
// views:NSDictionaryOfVariableBindings(picture)]];
}
[self.view addSubview:baseView];
如何在状态栏图像视图之间以编程方式显示垂直空间约束的任何想法。
感谢您的帮助。
答案 0 :(得分:0)
您的“图片视图”是带有彩色背景的根视图(即self.view
)。在iOS 7中,根视图是全屏的,并且状态栏不足。
我建议改为设置baseView
的背景色。然后使用自动布局将baseView
固定到top layout guide
。
此外,使用自动布局定位baseView
,而不是获取屏幕尺寸并将尺寸与幻数进行比较。