Nach Hinzufügen einer Fußzeile zur Tabellenansicht, wenn die Tabelle nur eine Zelle hat, zeigt die Fußzeile ein wenig hoch, nur am unteren Rand der Zelle. Wie kann es am Fuß der Tabellenansicht angezeigt werden, egal wie viele Zellen der Tisch hat?ein Problem über UITableFooterView
Antwort
footerView ist nur der Hintergrund, fügen Sie eine Ansicht, die Sie wirklich wollen, wie folgt aus:
func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
return 100
}
func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
let footerView = UIView.init()
footerView.backgroundColor = .red
// footerView is just the background, add a view that you really want
let subView = UIView.init(frame: CGRect.init(x: 20, y: 20, width: UIScreen.main.bounds.width - 40, height: 100 - 40))
subView.backgroundColor = .yellow
footerView.addSubview(subView)
return footerView
}
Die Frage ist markiert Objective-C. Bitte geben Sie Antworten in der entsprechenden Sprache ab. – rmaddy
ich ein Etikett auf diese Weise zurückgeben, funktioniert nicht. Die Fußzeile wird immer unter der letzten Zelle angezeigt. Wenn die erste Zelle auch die letzte ist, wird die Fußzeile etwas hoch angezeigt. Hinzufügen von Unteransichten zur Fußzeile kann ihre Position nicht ändern. – Terminater
geben Sie eine Ansicht mit einem Label zurück. Sie können den Rahmen der return view nicht ändern, aber Sie können die Position des Labels ändern –
Hier ist mein Code Blick auf tableFooterView und seine adaequat einzustellen.
@property (weak, nonatomic) IBOutlet UITableView *tblView;
@property (weak, nonatomic) IBOutlet UIView *viewTableFooterView;
- (void)viewDidLoad {
[super viewDidLoad];
_tblView.tableFooterView = _viewTableFooterView;
_tblView.backgroundColor = [UIColor greenColor];
[_tblView reloadData];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 10;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *simpleTableIdentifier = @"SimpleTableItem";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
}
cell.textLabel.text = [NSString stringWithFormat:@"%ld",(long)indexPath.row];
return cell;
}
Überprüfen Sie den Code und lassen Sie mich wissen, wenn es nicht für Sie arbeitet.
danke, aber ich denke, Sie haben nicht meinen Gedanken – Terminater
Dies tritt auf, weil die Fußzeile, die Sie hinzufügen, die Fußzeile des Inhalts ist, den Sie innerhalb der UITableView
anzeigen. Davon abgesehen gibt es eine Möglichkeit, die gewünschte Ausgabe zu erhalten. Sie können eine UIView
unter die im Storyboard hinzugefügte UITableViewCell
ziehen, damit sie als Fußzeile angezeigt wird.
Setup-Einschränkungen für die UILabel
oder irgendetwas, was Sie im Hinblick auf diese Ansicht zeigen möchten, was ich meine ist, keine feste Höhe Einschränkungen hinzufügen, sonst werden Sie lästige Layout breaking Warnungen bekommen. Machen Sie ein Duplikat dieser Fußzeilenansicht und fügen Sie es Ihrem Fuß UITableView
hinzu und fügen Sie eine feste Höhe hinzu, um es als eine Kopie der Fußzeilenansicht zu erstellen, die Sie innerhalb der UITableView
hinzugefügt haben. von wie diese Sorte:
nun ein Ventil für diese Höhe Einschränkung der Fußzeile Blick in Ihre UIViewController
erstellen.
Jetzt in Ihrem viewDidLoad
was Sie tun können, ist zu überprüfen, ob die Höhe des UITableView
nach Zugabe der Zellen weniger als Bildschirm Grenzen und gehen entsprechend vor, wie folgt aus:
- (void)viewDidLoad {
[super viewDidLoad];
//dont show footer view if cells are within screen bounds
if (numberOfCells * cellHeight < [UIScreen mainScreen].bounds.size.height){
UIView *footerView = mainTableView.tableFooterView;
CGRect tempFrame = footerView.frame;
tempFrame.size.height = 0.0f;
footerView.frame = tempFrame;
mainTableView.tableFooterView = footerView;
}else{
//dont show footerview below table view if cells are outside screen bounds
[footerHeightConstraint setConstant:0.0f];
}
}
Hinweis: ich verpasst haben ein Kantenfall, der sich auf die Höhe bezieht, wie das Produkt aus Zeilen * Höhe, die gleich oder weniger als Bildschirmgrenzen ist, also müssen Sie sich das ansehen.
gute Idee.Aber das bedeutet nur UITablefooterview kann dies nicht erreichen? – Terminater
Soweit ich weiß, nein. Welches Verhalten Sie auch immer sehen, ist das Standardverhalten. – Rikh
- 1. Ein Problem über in_array
- 2. ein Problem über Singleton in Rubin
- 3. Ein weiteres Problem über log4net 1.2.11 Konflikte
- 4. ein Problem Schließen Sie über Mitteilung
- 5. ein UIView über Tableview Problem hinzufügen
- 6. ein Problem über urlfetch über 1M in App Engine
- 7. AMFPHP über SSL Problem
- 8. Problem über @ 2X
- 9. Problem ableiten über C++
- 10. C++ Problem über Arrays
- 11. Zeichnen einer Linie über ein scrollbares Bild Problem!
- 12. Ein Problem über Algorithmus von String, dp, Graph oder etw.
- 13. Problem beim Weiterleiten von Nachricht über ein ActiveMQ-Netzwerk
- 14. Zugriff auf MongoDB über Android App. Ein Problem
- 15. Problem mit Text über ein Bild in IE
- 16. Gibt es ein Problem beim Senden von XML über WCF?
- 17. Sehr seltsames Problem über NSString
- 18. Git-Klon über SSH Problem
- 19. Problem mit Sendepuffer über Socket.IO
- 20. Problem über dynamisch erstellte Eingaben
- 21. Über den MFC CFileDialog Problem
- 22. Layout-Problem über die Ausrichtung
- 23. Problem mit Ladevorgang über Ajax
- 24. Problem über java.lang.IllegalArgumentException beim Abrufen von Daten über REST-API
- 25. Problem während gzip über ssh zu tun
- 26. ridonkulous Großschriftanzeige Problem. fontSize zerschmettert Wörter über
- 27. Ein seltsames regex Problem
- 28. Problem ein plist Speicher
- 29. ein JavaScript-String-Problem?
- 30. Problem Update ein CKRecord
Die Position der Tabellenfussansicht hängt davon ab, wie viele Abschnitte/Zellen und die Höhe Ihrer Zelle. Wenn Sie die Fußzeile immer am Fuß der Tabellenansicht haben möchten, kann Ihnen nur die benutzerdefinierte Ansicht helfen. –
das funktioniert nicht. Wenn ich der Tabellenansicht gleichzeitig eine benutzerdefinierte Ansicht hinzufüge, gibt es viele Zellen in der Tabelle und die benutzerdefinierte Ansicht wird nie unterhalb der letzten Zelle angezeigt. – Terminater