In meinem Projekt auf Objective-C
mainscreen mit benutzerdefinierten NavigationBar
(von Code erstellt) Ansicht auf dem Hauptbildschirm hinzufügen:SafeArea in iOS 11: Wie mit benutzerdefinierten navigationbar ohne safeArea von Code in 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];
ich selbst ändern .view wie Größe [UIScreen mainscreen] .applicationFrame]:
UIView* mainView = [[[MainViewControllerView alloc] initWithFrame:[UIScreen mainScreen].applicationFrame] autorelease];
self.view = mainView;
In mainScreenView ich hinzufügen Scroll:
scrollView = [[UIScrollView alloc] initWithFrame:self.bounds];
scrollView.autoresizesSubviews = YES;
scrollView.autoresizingMask = UIViewAutoresizingNone;
scrollView.backgroundColor = [UIColor clearColor];
scrollView.bounces = NO;
und einige SubView innerhalb Scroll hinzufügen:
[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
Wenn Verwendung XCODE 8 und iOS < = 10, alle Ansicht Ort korrekt auf mainscreen (myLogoView Ort ignorieren Größe von benutzerdefinierten navigationbar und haben Y-Koordinate == 20.0 in absoluten Wertekoordinaten des Gerätebildschirms), , aber wenn 9 und iOS
11 myLogoView unter meiner benutzerdefinierten navigationBar (height == 44) myLogoView Y == 64.0 in absoluten Wert Koordinaten des Gerätebildschirms, in iOS 10 (unter xCode9) alles funktioniert gut - Adde d view auf mainScreen in Startkoordinaten des Bildschirms platziert und Höhe der benutzerdefinierten NavigationBar
ignorieren.
In Swift und Storyboard Ich weiß, wie es in iOS11 behoben einfache entfernen safeArea oberen Zeile, aber wie safeArea aus Code in Objective-C
entfernen.
Wie beheben Sie dieses Problem?
Sorry, aber die Frage, die ich erwähnte wissen, wie es von Storyboard und Swift zu tun. Interessiert an ist Objective-c –
, aber wenn Sie sichere Bereich von Storyboard deaktivieren wird es Ihr Problem b'cus lösen, wie Sie erwähnen, sichere Bereich schafft Problem für Ihre benutzerdefinierte Navigationsleiste, so dass ich denke nicht, nach Deaktivieren dieser nicht erforderlich zu ändern jede Sache wie das gleiche wie iOS 10. – CodeChanger
in meinem Projekt gibt es kein Storyboard und ich kann diesen sicheren Bereich nicht von der Einstellung Panel deaktivieren ... –