Wie kann verhindert werden, dass UINavigationBar den oberen Teil der Ansicht in iOS 7 bedeckt?
Nach dem Update auf Xcode 5, der Navigations-bars in dem alle meine app ' s Ansichten nach unten verschoben. Hier sind einige screenshots, der erste zeigt alles, was in der Ansicht, wie es nach unten gezogen, und das zweite zeigt alles unberührt. Die Suchleiste sollte beginnen, wo der Navigationsleiste.
Jemand weiß, wie kann ich dieses Problem beheben?
edit: ich habe versucht, diese zuvor Empfehlung:
if ([self respondsToSelector:@selector(edgesForExtendedLayout)])
self.edgesForExtendedLayout = UIRectEdgeNone;
Aber es führt zu sehr seltsamen Ergebnissen.
Dies kann sein, weil ich ein "slide-Menü" unter dieser view-controller, erscheinen aufgrund der Transparenz der Navigationsleiste.
InformationsquelleAutor der Frage Sam D20 | 2013-09-23
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Legen Sie die Navigationsleiste die transluzente Eigenschaft auf NEIN:
Wird dieses Update die Ansicht von umrahmt wird unterhalb der navigation bar und Statusleiste.
Wenn Sie zum ein-und ausblenden der Navigationsleiste, dann verwenden Sie
in Ihrem
viewDidLoad
Methode.InformationsquelleAutor der Antwort Deepesh
In
iOS 7
standardmäßig alle Controller-translucent-Eigenschaft den Wert YES, so setzen Sie transluzente Eigenschaft KEINE für dieses Problem.InformationsquelleAutor der Antwort Sumit Mundra
Können Sie Sie deaktivieren
die "Kanten Verlängern" im Attribut-inspector of View Controller in diesem Bildschirm (siehe Bild unten)
:
InformationsquelleAutor der Antwort Achyut Sagar
Wenn Sie möchten, um die Transparenz auf Ihre
navigationBar
am Ende IhrerviewDidLoad
oder in IhremviewWillAppear
fügen Sie die folgende Zeile des Codes:Irgendwie, wenn Ihr
scrollView
Unterklasse (UITableView
,UICollectionView
usw.) ist beiindex
0 in der aktuellen Ansichtsubviews
ist, wird es automatisch passen Sie die Einsätze entsprechend IhrernavigationBar
. Und es sollte nicht auf Ihrer Benutzeroberfläche in früheren Versionen (vor iOS7.BEARBEITEN
Wenn Sie initialisieren Sie Ihre
UITableView
programmgesteuert, dann ist es am besten, um es in der Ansicht mit diesem[self.view insertSubview:self.tableView atIndex:0];
InformationsquelleAutor der Antwort jbouaziz
Diese funktioniert bei swift als auch auf iOS 8.1
InformationsquelleAutor der Antwort uplearnedu.com
Können Sie diese Methode in Ihrer view-controller, wie hier abgebildet,URL:
InformationsquelleAutor der Antwort malkoty
Anderer Ansatz ist das einrichten
self.automaticallyAdjustsScrollViewInsets = YES;
auf Ihre view-controller.Diese Option ist standardmäßig aktiviert. Aber in deinem Fall:
Ich sehe sind Sie mit EGORefreshHeaderView. Es spielt mit contentInset der UITableView. Also, wenn Sie es loslassen, wird die überschrift reset oberen Versatz statt wiederherstellen von vorherigen Wert.
InformationsquelleAutor der Antwort Krivoblotsky
Swift 4:
Stellen Sie folgende Zeile code in die viewDidLoad-Methode:
InformationsquelleAutor der Antwort Md. Najmul Hasan
Wenn Sie möchten, um die vollständige Kontrolle über Ansichten und vermeiden Sie fehlerhafte Einstellungen von iOS UITableView eine Unterklasse und passen Sie die Abstände (beide Blättern und Indikatoren) in -(void)willMoveToWindow:(UIWindow *)newWindow. Für mich funktioniert.
InformationsquelleAutor der Antwort Farhad Malekpour
Weitere option ist zu öffnen Sie Ihr Info.plist-Datei im Quellcode-Modus, und geben Sie die folgenden Informationen:
Hoffe, das hilft.
InformationsquelleAutor der Antwort Nicoli