我试图通过在animationWithDuration块中使用自动布局来更改tableview框架。像那样;

[UIView animateWithDuration:0.3f animations:^{

            weekdayOffersVerticalConstraint.constant = 80;
            [headerView layoutIfNeeded];
            [weekdayTableView layoutIfNeeded];

            self.isTableViewSmall = YES;

        } completion:^(BOOL finished) {


        }];

我的tableview的框架随此代码块而变化,但是当我向下滚动时,单元格从左侧到右侧出现,我认为这与所有子视图的[weekdayTableView layoutIfNeeded]; layoutIfNeeded效果有关。我怎样才能阻碍桌视图的单元格?

对不起,我的英语不好,非常感谢您的回答和建议。

最佳答案

在开始动画之前,请先调用layoutIfNeeded来更新约束:

[headerView layoutIfNeeded];
[weekdayTableView layoutIfNeeded];
[UIView animateWithDuration:0.3f animations:^{

            weekdayOffersVerticalConstraint.constant = 80;
            [headerView layoutIfNeeded];
            [weekdayTableView layoutIfNeeded];

            self.isTableViewSmall = YES;

        } completion:^(BOOL finished) {
            //
        }];

您可能也不想在动画块内设置BOOL属性,除非您有在动画过程中有意覆盖它的方法。

10-08 06:57