2012-04-02 185 views
3

Im使用下面的代码来动画调整UITableView的大小,以便为具有额外控件的UIView在UITableView.isEditing时让路。动画UITableView调整大小

[UIView animateWithDuration:3 // 0.2 but slowed down to easily see difference 
         delay:0 
        options:UIViewAnimationOptionCurveEaseOut 
       animations:^{ 
        [self.selectControlsView setFrame:CGRectMake(0, self.tableView.frame.size.height-self.selectControlsView.frame.size.height, self.selectControlsView.frame.size.width, self.selectControlsView.frame.size.height)]; 
        [self.tableView setFrame:CGRectMake(0, 0, self.tableView.frame.size.width, self.tableView.frame.size.height-self.selectControlsView.frame.size.height)]; 
       } 
       completion:nil]; 

这工作得很好,除了它似乎UITableView动画比UIView得快一些(尽管我调整UITableViews帧之前的UIViews帧),从背景动画中引起黑色闪烁。

有没有办法让两个视图一前一后动画?

+0

我可以使用两个独立的动画块,并在UITableView动画的块上稍稍延迟一点,但这看起来有点像黑客。欢迎任何更好的想法。 – steharro 2012-04-02 12:04:40

回答

0

问题是由于控制器是UITableViewController的子类造成的。我现在继承UIViewController并将UITableView添加为子视图,添加新视图和调整UITableView的动画现在按预期工作。