在我的項目上Objective-C
mainScreen使用自定義NavigationBar
添加視圖定製的導航欄主屏幕上(從代碼中創建):SafeArea在iOS的11:如何不safeArea從代碼在Objective-C
mainNavigationController = [[NavigationController alloc] initWithRootViewController:mainMenuViewController];
mainNavigationController.navigationBar.barStyle = UIBarStyleBlackTranslucent;
mainNavigationController.delegate = self;
mainNavigationController.navigationBar.tintColor = [UIColor whiteColor];
UIWindow* window = self.window;
window.backgroundColor = [UIColor whiteColor];
window.rootViewController = mainNavigationController;
[window makeKeyAndVisible];
我改變自我.view像大小[UIScreen mainScreen] .applicationFrame]:
UIView* mainView = [[[MainViewControllerView alloc] initWithFrame:[UIScreen mainScreen].applicationFrame] autorelease];
self.view = mainView;
在mainScreenView我添加滾動視圖:
scrollView = [[UIScrollView alloc] initWithFrame:self.bounds];
scrollView.autoresizesSubviews = YES;
scrollView.autoresizingMask = UIViewAutoresizingNone;
scrollView.backgroundColor = [UIColor clearColor];
scrollView.bounces = NO;
而且裏面添加滾動視圖一些子視圖:
[scrollView addSubview:myLogoView];
[scrollView addSubview:littleScrollView];
[scrollView addSubview:firstButton];
[scrollView addSubview:secondButton];
[scrollView addSubview:thirdButton];
[scrollView addSubview:fouthButton];
[scrollView addSubview:fifthButton];
[scrollView addSubview:sixthButton];
[scrollView addSubview:seventhButton];
[scrollView addSubview:activityIndicatorView];
https://www.dropbox.com/s/ttrkolgnch80kr9/safeArea.png?dl=0
如果在Xcode 8和iOS < = 10,所有觀點的地方正確的mainScreen(myLogoView地方忽略自定義導航欄的大小,並有座標Yi == 20.0在設備屏幕的絕對值座標), ,但如果使用XCode
9和iOS
11 myLogoView有我的自定義navigationBar(高度== 44)下的位置在設備屏幕的絕對值座標myLogoView Y == 64.0,在iOS 10 (在xCode9下)一切正常 - adde主屏幕上的d視圖放置在屏幕的起始座標上,忽略自定義的高度NavigationBar
。
在swift和故事板我知道它如何在iOS11中修復容易刪除safeArea頂線,但如何從代碼中刪除safeArea 在Objective-C
。
如何解決這個問題?在IOS 11
很抱歉,但我所說的問題,知道如何從故事板和斯威夫特做。有興趣的是Objective-c –
,但是如果你從storyboard中禁用安全區域,它會解決你的問題b'cus,因爲你提到安全區域正在爲你的自定義導航欄創建問題,所以我不這樣認爲後禁用這不需要改變任何東西都與iOS 10相同。 – CodeChanger
在我的項目中沒有任何故事板,並且我無法從設置面板禁用此安全區域... –