В моем проекте на Objective-C
mainScreen с Custom NavigationBar
(созданный из кода):
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];
Я меняю self.view как размер [UIScreen mainScreen].applicationFrame]:
UIView* mainView = [[[MainViewControllerView alloc] initWithFrame:[UIScreen mainScreen].applicationFrame] autorelease];
self.view = mainView;
В mainScreenView я добавляю scrollView:
scrollView = [[UIScrollView alloc] initWithFrame:self.bounds];
scrollView.autoresizesSubviews = YES;
scrollView.autoresizingMask = UIViewAutoresizingNone;
scrollView.backgroundColor = [UIColor clearColor];
scrollView.bounces = NO;
И добавьте немного subView внутри scrollView:
[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, все представления правильно размещаются на главном экране (место myLogoView игнорирует размер пользовательской панели навигации и имеет координату Y == 20,0 в абсолютных координатах экрана устройства), но при использовании XCode
9 и iOS
11 myLogoView имеют поместите под мою пользовательскую панель навигации (высота == 44) myLogoView Y == 64.0 в абсолютных координатах экрана устройства, в iOS 10 (под xCode9) все работает хорошо - добавлен вид на mainScreen, размещенный в начальных координатах экрана, и игнорировать высоту пользовательского NavigationBar
.
В swift и раскадровке я знаю, как это было исправлено в iOS11, чтобы легко удалить верхнюю строку safeArea, но как удалить safeArea из кода в Objective-C
.
Как исправить эту беду?