Wenn ich versuche, die Rahmenhöhe eines tableView
(ex: height -= 200
) zu animieren, verschwinden die Zellen, die in den letzten 200px erscheinen plötzlich, bevor die glatte Animation des Frames abgeschlossen ist.UITableView Rahmenhöhe Animation Glitch
Um sicherzustellen, dass es nichts anderes ist, das ich mache, habe ich eine neue Ansicht-basierte Anwendung erstellt. In der Hauptsache viewController
erstelle ich meine eigene tableview
mit genug pseudo rows
, um den gesamten Bildschirm zu füllen. Und bei der Auswahl einer Reihe mache ich eine einfache Höhenanimation.
relevanteste Code:
- (void)viewDidLoad {
[super viewDidLoad];
self.myTable = [[[UITableView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)] autorelease];
myTable.delegate = self;
myTable.dataSource = self;
[self.view addSubview:myTable];
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
CGRect frame = self.myTable.frame;
frame.size.height = 200;
[UIView beginAnimations:nil context:nil];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDelay:.5f];
[UIView setAnimationDuration:0.5f];
self.myTable.frame = frame;
[UIView commitAnimations];
}
Weiß jemand, warum dies geschieht, oder was für eine fix/Abhilfe sein kann?
Alle Vorschläge sind sehr geschätzt. TIA!
Nein, es ist richtig, "UIView" -Methoden für die Animationsaufrufe zu verwenden. – rluba
Ich habe den gleichen Code mit 3.1 auch versucht, und immer noch ein Problem für mich;/Meine aktuelle Problemumgehung ist es zu warten, bis die Animation abgeschlossen ist, bevor die Größe der Tabelle ändern – dizy