我有同时动画搜索栏和表格视图的方法(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上制作表格视图吗?
更新
我试图为表视图的内容插入设置动画,但结果是一样的。所以这没有帮助。
答案 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?