iOS - Größe UITableView Höhe programmgesteuert

Ich habe ein problem versuchen, programmgesteuert ändern der Höhe einer UITableView gehostet in einem UIViewController mit iOS5 und Storyboards. Die VC zeigt eine master/detail-Datensatz-Stil mit der UITableView Anzeige der detail-Datensätze. Je nach Typ des master-Datensatz angezeigt, eine Gruppe von Schaltflächen, die notwendig werden können, an den Fuß des Bildschirms. Wenn die Tasten nicht benötigt werden, dann möchte ich die UITableView zu erweitern, es ist die Höhe, um die Vorteile der verfügbaren Platz. Ich bin mit dem folgenden code :

CGRect tableFrame = [tableListView frame];
if (blnApprovalRec == YES)
    tableFrame.size.height = 127;
else
    tableFrame.size.height = 170;
[tableListView setFrame:tableFrame];

Dieser code wird aufgerufen, wenn die master-Aufzeichnung von änderungen, einschließlich, wenn der Bildschirm zuerst lädt in viewDidLoad. Das problem ist, dass, wenn die VC geladen, die UITableView Malt nicht mit der Größe angegeben - es Malt mit dem Standard-Größe von IB. Sobald der Benutzer verändert den master-Datensatz, so dass die Tabelle neu geladen wird, dann funktioniert alles Prima und die Größe der änderungen als erforderlich. Ich habe versucht, zu zwingen einen repaint mit setNeedsDisplay, setNeedsLayout und reloadData aber keiner von Ihnen arbeitete.

In der Methode ruft Ihr den oben genannten code?
Ist dieser code in eine Methode wie viewDidLoad?

InformationsquelleAutor Jonathan Wareham | 2012-08-17

Schreibe einen Kommentar