我正在尝试通过在 animationWithDuration block 中使用自动布局来更改 tableview 框架。就这样;
[UIView animateWithDuration:0.3f animations:^{
weekdayOffersVerticalConstraint.constant = 80;
[headerView layoutIfNeeded];
[weekdayTableView layoutIfNeeded];
self.isTableViewSmall = YES;
} completion:^(BOOL finished) {
}];
我的 tableview 的框架随着这个代码块而改变,但是当我向下滚动时,单元格从左侧到右侧,我认为它与 [weekdayTableView layoutIfNeeded]; layoutIfNeeded 效果有关所有 subview 。如何阻止影响我的 tableview 的单元格?
对不起,我的英语不好,非常感谢您的回答和建议。
Best Answer-推荐答案 strong>
在开始动画之前调用 layoutIfNeeded 以更新约束:
[headerView layoutIfNeeded];
[weekdayTableView layoutIfNeeded];
[UIView animateWithDuration:0.3f animations:^{
weekdayOffersVerticalConstraint.constant = 80;
[headerView layoutIfNeeded];
[weekdayTableView layoutIfNeeded];
self.isTableViewSmall = YES;
} completion:^(BOOL finished) {
//
}];
您可能也不想在动画 block 内设置该 BOOL 属性,除非您有一个在动画期间有意覆盖它的方法。
关于ios - 使用自动布局更改带有动画的 tableview 帧,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/29923980/
|