【发布时间】:2016-05-22 23:49:19
【问题描述】:
在详细介绍之前,我想提一下,我已经尝试了所有关于添加 LaunchImages/LaunchScreen.xib 等的教程,但没有一个对我有用。也许我做错了什么,所以如果您认为我遗漏了什么,请告诉我。
因此,我的大部分视图都是使用 Interface Builder/Auto Layout 创建的,它们可以缩放到适合所有模拟器(iPhone 4s-iPhone 6s plus)的大小。
但是,对于我的一个观点,我的做法有点不同,无论我在哪个模拟器上运行它,它似乎都保持在 iPhone 4S 的屏幕尺寸上。 (也就是视图周围有空白区域)
这是我的工作:
我有一个 CustomView.XIB,我使用 AutoLayout 添加了一堆按钮/标签/等。
我还制作 CustomView.h 和 .m 文件:
- (instancetype)initWithNib {
self = [super initWithFrame:[[UIScreen mainScreen] bounds]];
if (self) {
NSLog(@"Screen bounds height in view: %f",[UIScreen mainScreen].bounds.size.height);
NSBundle *bundle = [NSBundle bundleForClass:[self class]];
UINib *nib = [UINib nibWithNibName:@"CustomView" bundle:bundle];
CustomView *view = [nib instantiateWithOwner:self options:nil][0];
[self addSubview:view];
}
return self;
}
在我的 CustomViewController.m 文件中,我有:
currentCustomView = [[CustomView alloc] initWithNib];
[self.view addSubview:currentCustomView];
所以实际上我不认为 [[UIScreen mainScreen] bounds] 是错误的。 CustomViewController 和 CustomView 都返回相同的 incorrect 界限。为什么 ViewController 的边界不正确?为什么它总是 iPhone 4s 的界限而不是随着不同的模拟器而改变?
我在图片资源中有我的 Launch 图片:
在属性部分:
另一个问题:如果我只支持 IOS 9 及更高版本,在我看来我不需要 iOS 6 和 Prior 启动图像。但是它在某些模拟器版本上无法正常工作。但是我以为所有的iPhone 4s-6s都可以支持iOS9,为什么要这样设置呢?
【问题讨论】:
-
出于好奇,自定义视图是 EAGLView 吗?
-
不只是一个 CustomView : UIView
-
是的,我已经尝试了两种方法,但似乎都不适合我
-
[UIScreen mainScreen].frame 有什么作用?
标签: ios objective-c uiview uiviewcontroller