如何翻译整个UIView并保留手势识别?

时间:2014-05-14 17:27:24

标签: ios objective-c uiview

我有UIView“MainView”,最初显示如下:

enter image description here

渐变条是MainView的一部分,下方的空白是Container View子视图的一部分。 当点击右上角的搜索按钮时,我会在屏幕上为searchBar设置动画,以便在视图中显示:

enter image description here

我设法通过以下代码执行此操作:

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的所有子视图。在这种简单的情况下,这不会是一个大问题,但我可以设想一个包含数十个子视图的情况,这使得这完全不切实际。

完成我想要做的事情的最佳方法是什么?在没有手势死区的情况下动画整个视图/子视图是否有秘密?在此先感谢!!

0 个答案:

没有答案