我有UIView
“MainView”,最初显示如下:
渐变条是MainView的一部分,下方的空白是Container View子视图的一部分。 当点击右上角的搜索按钮时,我会在屏幕上为searchBar设置动画,以便在视图中显示:
我设法通过以下代码执行此操作:
CGRect currentViewFrame = self.view.bounds;
currentViewFrame.origin.y += searchViewHeight;
[UIView animateWithDuration:0.4
delay:0.0
usingSpringWithDamping:1.0
initialSpringVelocity:4.0
options:UIViewAnimationOptionCurveEaseInOut animations:^{
self.view.frame = currentViewFrame;
}
completion:^(BOOL finished)
{
}];
视觉上,这个动画的结果是完美的。整个视图移动,searchBar现在在屏幕上。但是,searchBar不响应交互。如果我错了,请纠正我,但我希望这是因为MainView的框架不再包含searchBar现在占用的屏幕区域,因此它实际上是一个手势死区。
所以这让我觉得不是懒得动画整个MainView以适应searchBar,而是我必须一次单独翻译MainView的所有子视图。在这种简单的情况下,这不会是一个大问题,但我可以设想一个包含数十个子视图的情况,这使得这完全不切实际。
完成我想要做的事情的最佳方法是什么?在没有手势死区的情况下动画整个视图/子视图是否有秘密?在此先感谢!!