Tabellarische Ansicht, die unter der Navigationsleiste versteckt ist (aber nur für eine Registerkarte)

8

Ich verwende Xcode 5 mit Storyboard und automatischem Layout. Meine Ansichten sind:

  • root Navigationsansicht
  • Registerkarten-Controller (ist die Standardansicht für die Navigationsansicht)
  • zwei Tab-Ansichten

In beiden Tab-Ansichten habe ich ein UITableView drauf gesetzt, und ich habe das Standard-IB-Zeug eingerichtet. Beide Tab-View-Controller sind im Hinblick auf das Setup fast identisch im Code (beide stammen von UIViewController).

Für die Tabellenansicht sind die Dinge jedoch merkwürdig. Die erste Tabellenansicht hat die richtige Einstellung, wo die Zellen "unterhalb der Navigation" beginnen und Sie nach oben scrollen können. Die zweite Tabellenansicht beginnt mit den Zellen "unter der Navigation" - es scheint als wären die Eingaben falsch.

Aber warum wäre es falsch für nur die zweite Registerkarte, und nicht die erste? Ich habe auch nichts Unkonventionelles getan, und ich habe den Code mehrere Male untersucht, um sicher zu sein, dass beide Tableview-Controller fast identisch sind (außer im Zelleninhalt).

(auf dem zweiten Bild, beachten Sie das grüne Bit unter der "Carrier" Statusleiste).

    
tng 31.05.2014, 06:43
quelle

12 Antworten

3

Nach einigen Untersuchungen habe ich das Problem gefunden. Das Problem war, dass mein Tab-Controller nicht der Root war, sondern der Nav-Controller. Sobald ich den Tab-Bar-Controller zum root gemacht habe und die Navs in die verschiedenen Tabs gelegt habe, war alles behoben.

Wie kann die Warnung "Zweistufige Rotation" eliminiert werden?

    
tng 31.05.2014, 08:30
quelle
18

Ich war einmal mit demselben Problem konfrontiert.

Versuchen Sie, die "Under Top Bars" im Attribute Inspector des View-Controllers zu wechseln.

Das hat für mich funktioniert. Hoffe es auch für dich. Danke.

    
try catch finally 31.05.2014 11:38
quelle
3
___ answer23968028 ___

Nach einigen Untersuchungen habe ich das Problem gefunden. Das Problem war, dass mein Tab-Controller nicht der Root war, sondern der Nav-Controller. Sobald ich den Tab-Bar-Controller zum root gemacht habe und die Navs in die verschiedenen Tabs gelegt habe, war alles behoben.

Wie kann die Warnung "Zweistufige Rotation" eliminiert werden?

    
___ answer23967692 ___

Probieren Sie es aus, indem Sie im Inspektor "Attribute" des View-Controllers die Option "Bildlauf-Ansichtseinstellungen anpassen" aktivieren. Sie möchten es angekreuzt haben.

    
___ answer33781166 ___

Eine der Antworten hier half und arbeitete: Wie kann ich meinen iOS7 UITableViewController NICHT unter der obersten Statusleiste anzeigen?

Falls jemand diesen Thread noch liest:

Was für mich funktionierte, ist auch, die Option "Kanten verlängern" im übergeordneten Registerkarten-Controller zu deaktivieren. Das ergibt ein konsistentes Verhalten sowohl in iOS7 als auch in iOS6.

    
___ qstnhdr ___ Tabellarische Ansicht, die unter der Navigationsleiste versteckt ist (aber nur für eine Registerkarte) ___ answer36891411 ___

Alte Frage, aber ich wollte erzählen, wie ich mein Problem nach vielen Lösungen gelöst habe, die ich versucht habe, die nicht funktionierten.

Ich habe es gelöst, indem ich kitsForExtendedLayout aufgerufen habe, damit es nicht hinter die Navigation geht.

%Vor%     
___ answer46156115 ___

In meinem Fall ist meine Struktur %code% Ich hatte Ansichten in den Registerkarten VC 20px gedrückt. Ich habe alle diese Antworten versucht, aber nicht funktioniert. Was für mich funktionierte, ist %code% links %code% unberührt.

    
___ qstntxt ___

Ich verwende Xcode 5 mit Storyboard und automatischem Layout. Meine Ansichten sind:

  • root Navigationsansicht
  • Registerkarten-Controller (ist die Standardansicht für die Navigationsansicht)
  • zwei Tab-Ansichten

In beiden Tab-Ansichten habe ich ein UITableView drauf gesetzt, und ich habe das Standard-IB-Zeug eingerichtet. Beide Tab-View-Controller sind im Hinblick auf das Setup fast identisch im Code (beide stammen von UIViewController).

Für die Tabellenansicht sind die Dinge jedoch merkwürdig. Die erste Tabellenansicht hat die richtige Einstellung, wo die Zellen "unterhalb der Navigation" beginnen und Sie nach oben scrollen können. Die zweite Tabellenansicht beginnt mit den Zellen "unter der Navigation" - es scheint als wären die Eingaben falsch.

Aber warum wäre es falsch für nur die zweite Registerkarte, und nicht die erste? Ich habe auch nichts Unkonventionelles getan, und ich habe den Code mehrere Male untersucht, um sicher zu sein, dass beide Tableview-Controller fast identisch sind (außer im Zelleninhalt).

(auf dem zweiten Bild, beachten Sie das grüne Bit unter der "Carrier" Statusleiste).

    
___ answer32855061 ___

Ich habe eine Lösung mit Tabs gefunden. Fügen Sie dies in %code%

hinzu %Vor%     
___ answer47294537 ___

Nach meinem Verständnis erlaubt es das Storyboard nicht, den Tab-Bar-Controller in den Navigations-Controller einzubetten, also sieht es so aus, als ob es nicht von Apple empfohlen wird. Allerdings habe ich in einer meiner Anwendungen diesen Entwurf verwendet und er sah Probleme mit iOS 11 mit Einführung von Safe Area.

Zur Behebung habe ich die Eigenschaft "Under Top Bars" des View-Controllers deaktiviert, wo ich auf das Problem gestoßen bin.

    
___ answer47418930 ___

Das folgende in %code% hinzugefügt hat für mich funktioniert

%Vor%     
___ tag123ios ___ iOS ist das mobile Betriebssystem, das auf dem Apple iPhone, iPod touch und iPad ausgeführt wird. Verwenden Sie dieses Tag [ios] für Fragen zur Programmierung auf der iOS-Plattform. Verwenden Sie die verwandten Tags [objective-c] und [swift] für Probleme, die für diese Programmiersprachen spezifisch sind. ___ answer49158954 ___

Wenn alles andere fehlschlägt.
%code%

    
___ tag123objectivec ___ Dieses Tag sollte nur bei Fragen verwendet werden, die sich auf Objective-C-Features beziehen oder von Code in der Sprache abhängen. Die Tags [Kakao] und [Kakao-Touch] sollten verwendet werden, um nach Frameworks oder Klassen von Apple zu fragen. Verwenden Sie die zugehörigen Tags [ios], [macos], [apple-watch] und [tvos] für Probleme, die für diese Plattformen spezifisch sind. ___ tag123uitableview ___ UITableView ist eine Klasse zum Anzeigen und Bearbeiten von Informationslisten auf iOS. Eine Tabellenansicht zeigt Elemente in einer einzelnen Spalte an. UITableView ist eine Unterklasse von UIScrollView, mit der Benutzer durch die Tabelle scrollen können, obwohl UITableView nur vertikales Scrollen erlaubt. ___ answer41781441 ___

Was mir diesmal geholfen hat, war das Deaktivieren von Kanten verlängern "unter den oberen Balken" im ViewController-Attributinspektor.

    
___ answer23969618 ___

Ich war einmal mit demselben Problem konfrontiert.

Versuchen Sie, die "Under Top Bars" im Attribute Inspector des View-Controllers zu wechseln.

Das hat für mich funktioniert. Hoffe es auch für dich. Danke.

    
___
BadPirate 26.11.2014 19:25
quelle
2

Probieren Sie es aus, indem Sie im Inspektor "Attribute" des View-Controllers die Option "Bildlauf-Ansichtseinstellungen anpassen" aktivieren. Sie möchten es angekreuzt haben.

    
bilobatum 31.05.2014 07:42
quelle
2

Eine der Antworten hier half und arbeitete: Wie kann ich meinen iOS7 UITableViewController NICHT unter der obersten Statusleiste anzeigen?

Falls jemand diesen Thread noch liest:

Was für mich funktionierte, ist auch, die Option "Kanten verlängern" im übergeordneten Registerkarten-Controller zu deaktivieren. Das ergibt ein konsistentes Verhalten sowohl in iOS7 als auch in iOS6.

    
RaviM 18.11.2015 13:18
quelle
1

Alte Frage, aber ich wollte erzählen, wie ich mein Problem nach vielen Lösungen gelöst habe, die ich versucht habe, die nicht funktionierten.

Ich habe es gelöst, indem ich kitsForExtendedLayout aufgerufen habe, damit es nicht hinter die Navigation geht.

%Vor%     
Luai Kalkatawi 27.04.2016 13:34
quelle
1

Was mir diesmal geholfen hat, war das Deaktivieren von Kanten verlängern "unter den oberen Balken" im ViewController-Attributinspektor.

    
Kiko Seijo 21.01.2017 16:02
quelle
1

In meinem Fall ist meine Struktur NavVC -> Tabbbar -> Tabs VCs. Ich hatte Ansichten in den Registerkarten VC 20px gedrückt. Ich habe alle diese Antworten versucht, aber nicht funktioniert. Was für mich funktionierte, ist Tabbbar -> Under Top Bars -> unchecked. links NavVC and TabsVCs unberührt.

    
name-it 11.09.2017 12:44
quelle
0

Ich habe eine Lösung mit Tabs gefunden. Fügen Sie dies in viewDidAppear

hinzu %Vor%     
Jonas Romain Wiesel 29.09.2015 22:56
quelle
0

Nach meinem Verständnis erlaubt es das Storyboard nicht, den Tab-Bar-Controller in den Navigations-Controller einzubetten, also sieht es so aus, als ob es nicht von Apple empfohlen wird. Allerdings habe ich in einer meiner Anwendungen diesen Entwurf verwendet und er sah Probleme mit iOS 11 mit Einführung von Safe Area.

Zur Behebung habe ich die Eigenschaft "Under Top Bars" des View-Controllers deaktiviert, wo ich auf das Problem gestoßen bin.

    
Nilikh Patnayak 14.11.2017 20:21
quelle
0

Das folgende in viewDidLoad hinzugefügt hat für mich funktioniert

%Vor%     
Prasanna Ramaswamy 21.11.2017 17:15
quelle
0

Wenn alles andere fehlschlägt.
tableview.contentInset = UIEdgeInsetsMake(28, 0, 0, 0)

    
Jeff 07.03.2018 18:31
quelle

Tags und Links