带有tableview问题的ios7 animateWithDuration

时间:2013-10-11 13:18:42

标签: iphone ios uitableview ios7 animatewithduration

我有同时动画搜索栏和表格视图的方法(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上制作表格视图吗?

更新

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

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

Autolayout / constraints可能会导致问题。

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

如果你发现问题确实存在问题,那么这里的“Autolayout vs. View Transforms”答案有一些有用的信息:How do I adjust the anchor point of a CALayer, when Auto Layout is being used?