使用动画调整UIView大小,子视图不会动画

时间:2014-01-13 21:15:42

标签: ios objective-c uitableview uiview

使用UIView的animateWithDuration:animations:completion:,我正在调整UIView和UIView的子视图,UIView是UITableView的子类。

UIView调整大小,但UITableView没有。它确实移动了一点,但框架没有正确更新并恢复到其原始状态。

编辑:如果我将调整大小移动到完成块....它可以工作。是什么给了什么?

    tweetTable.autoresizingMask = UIViewAutoresizingFlexibleWidth;
    [tweetTable endUpdates];
    [UIView animateWithDuration:DURATION animations:^{
        CGRect leftFrame = leftPane.frame;
        leftFrame.size.width = self.view.frame.size.width - MARGIN;
        leftPane.frame = leftFrame;
        leftPaneButton.frame = leftFrame;

        CGRect tweetFrame = tweetTable.frame;
        tweetFrame.size.width = leftPane.frame.size.width;
        NSLog(@"%f to %f", tweetTable.frame.size.width, leftPane.frame.size.width);
        tweetTable.frame = tweetFrame;
        tweetTable.backgroundColor = [UIColor redColor];
        tweetTable.alpha = 0.5f;

        sideInfo.center = CGPointMake(self.view.frame.size.width - MARGIN + (sideInfo.frame.size.width / 2), sideInfo.center.y);
        rightPaneButton.center = sideInfo.center;
    } completion:^(BOOL finished) {
        leftExtended = TRUE;
        [tweetTable beginUpdates];
    }];

1 个答案:

答案 0 :(得分:0)

如果UIView已选中自动调整子视图,请检查您的故事板。这意味着它会在视图本身调整大小时调整其所有子视图的大小。这可以解释为什么它在完成块中起作用。