我正在尝试通过在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 。我如何阻止对我的桌面 View 单元格的影响?
抱歉我的英语不好,非常感谢您的回答和建议。
最佳答案
在开始动画之前调用 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 - 使用自动布局通过动画更改桌面 View 框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29923980/