在我詳細介紹之前,我想提一下我已經嘗試了所有關於添加LaunchImages/LaunchScreen.xib等的教程,但都沒有爲我工作。也許我做錯了什麼,所以請讓我知道,如果你認爲我錯過了什麼。UIView以編程方式添加了全屏大小錯誤
因此,我的大部分視圖都是使用Interface Builder/Auto Layout創建的,它們可以適用於所有模擬器iPhone 4s-iPhone 6s的正確尺寸。
但是,對於我的觀點之一,我做了一點改變,似乎停留在iPhone 4S的屏幕大小上,無論我在哪個模擬器上運行它。 (阿卡它周圍的景色空白)
這是我做的:
我有一個CustomView.XIB和我加了一堆使用自動版式按鈕/標籤/等。
我也會讓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]邊界]是錯誤的。 CustomViewController和CustomView都返回相同的不正確的界限。爲什麼ViewController的邊界不正確?爲什麼它總是iPhone 4的界限,而不是用不同的模擬器改變?
我有我的啓動圖像在圖像資產:
而且在屬性部分:
另一個問題:如果我只支持IOS 9以上,在我看來,我不需要iOS 6和Prior發佈圖像。但是它在某些模擬器版本上無法正常工作。但我認爲所有iPhone 4s-6s都可以支持iOS9,所以他們爲什麼要這樣設置?
出於好奇,自定義視圖是一個EAGLView? – MtRoad
不只是一個CustomView:UIView – stellarowl12
你看過http://stackoverflow.com/questions/21668497/uiscreen-mainscreen-bounds-returning-wrong-size? – MtRoad