我认为这个问题的标题很难解释,所以我会尝试在这里做得更好。我有一个UIViewController项目。在主视图中我放了另一个较小的视图(320x200),我们称之为菜单。此视图主要位于可见屏幕之外的点(0,-180),因此当应用程序启动时,显示的前20px来自菜单,其余的是主视图。到目前为止清楚了吗?
当用户触摸菜单的可见部分(有一个UIButton)时,整个 self.view 会以动画向下移动,以便显示整个菜单。此菜单有更多按钮可以转到其他视图并执行其他操作,但触摸按钮时它们根本不响应。如何使按钮工作?这里有什么提示吗?
我发布了一些图片,因为它看起来有点乱:P
按要求添加代码: 当我说视图移动时,是的我的意思是框架,带有这样的动画:
[UIView beginAnimations:@"MenuAnimationShow" context:NULL];
[UIView setAnimationDuration:1];
[self.view setFrame:CGRectOffset([self.view frame], 0, menu.frame.size.height-15)];
self.view.center = CGPointMake(160, 240 + menu.frame.size.height - 15);
[UIView commitAnimations];
而且,是的,按钮连接到IBAction但是当你点击时没有任何反应。我每个都有一些NSLog,但从来没有记录任何东西。这就像你永远不会碰他们。如果我将菜单UIView放在主视图(self.view)上,它们也不起作用。更重要的是,菜单被忽略,因为如果下面有某些内容(zPosition),您可以触摸该项目。
答案 0 :(得分:1)
你不应该移动self.view你应该移动菜单的框架,你只需要移动中心,因为这将影响框架位置(我假设你的框架的宽度/高度是不应该改变。
[UIView beginAnimations:@"MenuAnimationShow" context:NULL];
[UIView setAnimationDuration:1];
self.menu = CGPointMake(320/2, menu.frame.size.height/2);
[UIView commitAnimations];