我试图通过在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
属性,除非您有在动画过程中有意覆盖它的方法。