ios - 使用自动布局通过动画更改桌面 View 框架

标签 ios objective-c uitableview autolayout

我正在尝试通过在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/

相关文章:

ios - 对按钮图像使用未声明的标识符

ios - 在 IOS 的 UITableView 中选择一个单元格时,表格单元格边框可见

ios - tableView中的两种类型的单元格-优雅

ios - 通过向后滑动关闭 UISwipeActionsConfiguration

ios - iOS Google Maps SDK 中具有跨宽度渐变的折线

ios - 从FlashDevelop发布到iOS的问题:compile-abc不兼容

ios - 如何创建所有 View Controller 都可以访问的方法?

ios - 使用 Phonegap 显示最近捕获的图像

objective-c - 在phonegap上使用sharekit进行xcode中的重复错误(但对于phonegap-plugin则不如此)

ios - 如何获取数据保存到 TableView 中的特定类别而不是所有类别?