2011-03-26 115 views
0

外尝试创建类似于iOS4的任务菜单中的内容:滚动型可见查看

(对不起倾斜后的图像没有足够的代表)

我有正常的视图控制器上这就是查看我的addSubview我的menuView。我将menuViews Y设置为-95,这样我就可以将viewControllers视图95向下移动到显示菜单。但是,如果menuViews Y是Negative,我menuView中的scrollView不起作用。

回答

1

您的滚动视图不会接收触摸输入,因为它不在其超级视图的界限内(您提到的主视图控制器的视图)。触摸交互系统的工作方式是AppKit框架沿着视图层次结构测试每个视图和子视图,其中 - (BOOL)pointInside :(CGPoint)点和事件:(UIEvent *)事件函数。如果一个视图对这个函数返回YES,它将重新开始整个过程​​,包括它的所有子视图,直到它找到仍然返回YES的最低子视图。您的设置的问题是,滚动视图的超级视图将返回NO,因为触摸高于它,并且您的menuView甚至不会被测试。所以,你有两种可能的解决方案:

  1. 实现你ViewControllers视图的UIView的一个子类(如果没有的话)和过载pointInside:withEvent:方法函数返回YES如果触摸不到它的框架或如果它在menuView(ViewControllers框架减去menuView框架)的范围内。

  2. 第二种解决方案是简单地将menuView放在其superview(0,0)的原点处,并将ViewControllers视图保留在(0,0)处。

我建议第二个,因为它不太复杂,更重要的一点。

+0

非常感谢。 – Mario 2011-03-27 21:14:59