2017-10-19 3 views
0

Was ich will Ich versuche, eine ScrollView eine nicht scrollbare TableView hinzufügen, aber ich scheiterte erfolgreich, also brauche ich Ihre Hilfe. Der Grund dafür ist, dass ich eine Info-Seite haben möchte, mit einigen Informationen und einer Liste von Benutzern in einem TableView und vielleicht einigen anderen UI-Elementen unter dem TableView. Ich benutze nur das Storyboard dafür, weil ich Ansichten nicht programmatisch gestalten möchte.Wie setze ich nicht-scrollbare UITableView in UIScrollView korrekt?

Strategie Die Seite kann länger sein als die Bildschirmfenster passen kann, damit eine Scrollview, so dass der Benutzer nach oben bewegen kann mehr Inhalt zu zeigen. Um eine Liste von Benutzern anzuzeigen, möchte ich ein TableView verwenden, das ist das erste, was mir in den Sinn kommt, und ich denke, es ist ziemlich logisch, hierfür ein TableView zu verwenden. Die Idee ist, dass, wenn mehr Zeilen dynamisch hinzugefügt werden, umso länger das TableView wächst und diese Information irgendwie an die ScrollView zurückgegeben wird, die in ihrem Zug ihre Höhe anpasst.

-Test Also ich experimentiere und aus irgendeinem Grunde zuerst mit einem UITextView getestet, die einen dynamischen Text enthält, die wie erwartet funktioniert. Wenn ich einen langen Text einfüge, kann die Seite nach oben und unten scrollen, um den gesamten Inhalt anzuzeigen. Aber nachdem ich es mit einem TableView getestet hatte, wollte ich nicht. Ich fand heraus, dass TableView eine feste Höhe hat, die sich beim Hinzufügen von Zeilen nicht dynamisch zu ändern scheint. Daher zeigt das TableView nur 2 statt 10 Zeilen an, da TableView nicht wächst. Ich habe die TableView-Eigenschaft 'Scrolling Enabled' wie für UITextView deaktiviert.

Frage
TableView wächst nicht, da weitere Zeilen hinzugefügt werden. Ich bin mir nicht sicher, warum, aber ich habe keine Höhenbeschränkung hinzugefügt, um die Höhe von TableView zu korrigieren. Warum wächst TableView nicht?

Image: ScrollView with TextView and TableView

Quelle für einige Tutorials:
https://www.natashatherobot.com/ios-autolayout-scrollview/ https://medium.com/rocknnull/ios-working-with-uiscrollview-uitextview-and-auto-layout-afa39fe2cac8 https://medium.com/disblu/scroll-view-auto-layout-in-xcode-8-7f43e82fe33

Antwort

1

Sie diese mit einem einzigen Tableview erreichen können. Was Sie tun müssen, ist die Verwendung von customCell.

Wie geht das?

Nach Ihrem Entwurf, was Sie geteilt haben, sagen wir, Sie haben drei verschiedene Arten von Dingen.

  1. Blue Cell (mit Info)
  2. grüne Zelle (Ich weiß nicht, es ist Zweck. :))
  3. Benutzerzelle.

Also im Grunde brauchen Sie drei Arten von verschiedenen CustomCell und in CellForRowAtIndexPath Methodenaufruf wie folgt aus:

if(indexpath.row == 0) { 
    return BlueCell; 
    } 
else if(indexpath.row == 1) { 
    return GreenCell; 
} 
else { 
    return UserCell; 
} 

Hoffnung, das hilft.:)

+0

Das ist eine Lösung, die ich für jetzt verwenden werde, thnx. Ich bin jedoch so frustriert, dass das, was ich zu erreichen versuchte, nicht funktioniert, ich kann es einfach nicht loslassen, es fühlt sich an, als hätte ich so viel Zeit verschwendet und gescheitert. – AndaluZ

+0

Können Sie diese Antwort akzeptieren, wenn sie hilfreich ist? :) –

+0

Es ist keine exakte Antwort auf meine Frage, nur eine andere Lösung, also +1 dafür;) – AndaluZ

Verwandte Themen