0

我有方法同时为搜索栏和表格视图设置动画(viewFilterResults只是其中一种视图):

            CGFloat heightSearchBar = CGRectGetHeight(_searchBar.frame);
            [UIView animateWithDuration:animationDuration delay:0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
                CGRect frameSearch = _searchBar.frame;
                frameSearch.origin.y = CGRectGetMaxY(self.viewFilterResults.frame);
                _searchBar.frame = frameSearch;

                CGRect frameTable = _plantsListTableView.frame;
                frameTable.origin.y = CGRectGetMaxY(self.viewFilterResults.frame) + heightSearchBar;
                frameTable.size.height = CGRectGetHeight(self.view.frame) - CGRectGetMinY(frameTable);
                _plantsListTableView.frame = frameTable;
            } completion:^(BOOL finished) {
                if (completionBlock) {
                    completionBlock();
                }
            }];

在 iOS 6 和 5 上一切正常,但在 iOS 7 上搜索栏动画还可以,但表格视图移动到正确的位置而没有动画。在 iOS 7 上动画表格视图可能是不可能的吗?

更新:

我试图为表格视图的内容插图设置动画,但结果是一样的。所以这没有帮助。

4

2 回答 2

0

我假设这是用于移动 UISearchBar 并根据搜索是否可见调整表格的框架?

如果是这样,而不是框架,将表格视图保持在其最大框架(即使它位于滚动条后面)并且只需调整它的contentInset以将内容向下推。

于 2013-10-11T13:23:06.090 回答
0

自动布局/约束可能会导致问题。

我在 iOS7 中遇到了类似的问题,我同时为 2 个单独的视图设置动画。第一个视图的约束奇怪地导致第二个视图的动画不完整。最奇怪的是,即使有约束,在 iOS6 中也没有问题。

如果您发现约束确实是问题所在,这里的“自动布局与视图变换”答案有一些有用的信息:当使用自动布局时,如何调整 CALayer 的锚点?

于 2013-11-04T00:21:08.627 回答