2016-02-11 40 views
0

在我詳細介紹之前,我想提一下我已經嘗試了所有關於添加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的界限,而不是用不同的模擬器改變?

我有我的啓動圖像在圖像資產:

Launch images assets

而且在屬性部分:

properties section

另一個問題:如果我只支持IOS 9以上,在我看來,我不需要iOS 6和Prior發佈圖像。但是它在某些模擬器版本上無法正常工作。但我認爲所有iPhone 4s-6s都可以支持iOS9,所以他們爲什麼要這樣設置?

+0

出於好奇,自定義視圖是一個EAGLView? – MtRoad

+0

不只是一個CustomView:UIView – stellarowl12

+0

你看過http://stackoverflow.com/questions/21668497/uiscreen-mainscreen-bounds-returning-wrong-size? – MtRoad

回答

0

JUST想出如何在嘗試完成不同的事情2天后做到這一點。

對於閱讀此內容的人來說,甚至不用擔心啓動圖像和所有爵士樂。只需使用AutoLayout,它會在您的視圖控制器中爲您縮放視圖。我只需要做:

[view setTranslatesAutoresizingMaskIntoConstraints:NO];

然後我想要的NSLayoutConstraints。但關鍵是我需要爲CustomViewController和我的CustomView內部添加子視圖後執行此操作。看看我上面的代碼,看看爲什麼我需要這樣做。

相關問題