OGeek|极客世界-中国程序员成长平台

标题: ios - 使用自动布局更改带有动画的 tableview 帧 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 15:08
标题: ios - 使用自动布局更改带有动画的 tableview 帧

我正在尝试通过在 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-推荐答案


在开始动画之前调用 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/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://ogeek.cn/) Powered by Discuz! X3.4