2012-08-13 15 views
16

Ich bin sehr neu in iOS. Ich habe eine UITableView, die mit vielen benutzerdefinierten Zellen gefüllt ist, aber die untere Zelle ist nicht ordnungsgemäß sichtbar, wenn Sie nach unten scrollen. Mein Y-Wert der UITableView ist 44 und Höhe ist 480. Nur die Hälfte der letzten Zelle ist sichtbar, wenn Sie nach unten scrollen. Wie kann ich dieses Problem beheben?UITableview nicht sichtbar die letzte Zelle beim Scrollen nach unten

Vielen Dank im Voraus.

Antwort

62

Gebrauch -

tableView.contentInset = UIEdgeInsetsMake(0, 0, 120, 0); //values 

vergangen sind - oben, links, unten, rechts

Pass unten versetzt nach Ihren Bedürfnissen.

+1

Dies löst nicht das eigentliche Problem, die Ansicht selbst ist nicht den Inhalt falsch ausgerichtet. –

+0

Das hat mir geholfen, ein etwas anderes richtig zu lösen. Wo ich TableView scrollen wollte, passierte die letzte Zelle, um einen Aktivitätsindikator anzuzeigen. Stimme von mir ab! – Tander

+0

Das löste mein Problem auch. Verwenden eines benutzerdefinierten Navigationssteuerelements, um eine Tabellenansicht anzuzeigen, und hatte das gleiche Problem wie iDia. – mafiOSo

2

Wenn Sie oben eine Statusleiste sehen, belegt diese 20px, was Ihre tableView um denselben Wert senkt. Um dies zu vermeiden, stellen Sie die Tableview Höhe 460 statt 480.

+0

Sie sollten nicht die Statusleiste Höhe Wert fest, aber etwas wie in dieser Antwort sollte statt http://stackoverflow.com/a/7038870/707983 verwendet werden –

3

es ist, weil Sie Ihre Tableview-Rahmen falsch gesetzt, wenn die Ansicht eine Navigationsleiste, in der Regel diesen Code verwenden:

CGRect frame = self.view.bounds; 
frame.height -= 44; 

44 ist die Höhe Ihrer Navigationsleiste.

0

Wenn Sie auf iOS7 sind und eine Navigation-Controller-Symbolleiste verwenden, stellen Sie sicher, dass es zu auf transluzent:

self.navigationController.toolbar.translucent = NO; 
0

Für mich gearbeitet wird.

Ich habe meinen Code auf Kommentar

-(void)viewWillLayoutSubviews 
{ 
dispatch_async(dispatch_get_main_queue(), ^{ 
    //This code will run in the main thread: 
    CGRect frame = tableViewObj.frame; 
    frame.size.height = tableViewObj.contentSize.height;//commenting this code worked. 
    tableViewObj.frame = frame; 

}); 

} 

Das ist es. Es hat für mich funktioniert. Bitte stellen Sie sicher, dass Sie den Tabellenansichtsframe in der Implementierungsdatei nicht geändert haben.

Verwandte Themen