2013-01-11 62 views
1

我已经创建了一个应用程序,其中我有一个大的滚动视图(两个页面高度),导航栏是可见的。此外,我已经设置好滚动视图开始滚动到底部页面,触及30px标记下方的UIScroll视图没有注册(例如,如果你触摸导航栏下方30px以上,你将能够按下按钮但不滚动UIScrollView)。这一切都非常出色,可以让我看起来像是从上面拉下一个窗户,所有这一切都是一个整洁的效果。UINavigationBar注册触摸UIScrollView

问题是,在用例测试中,许多用户似乎敲击得太高(敲击UINavigationBar),因此他们的滑动手势尝试拉下窗口不被读取。基本上,如果触摸开始在导航栏上,整个手势将被忽略。这导致用户感到沮丧(知道他们应该能够拉下窗户但无法),或者认为下拉由于某种原因已被禁用。

我想实现的方式,例如,如果用户的触摸从UINavigationBar的内启动,但不上的导航按钮之一,触摸向下传递到UIScrollView的。这是可能的,如果是这样,我该怎么去做呢?

+0

我使用类似于[此解决方案](http://stackoverflow.com/a/10365223/1669034)的东西来获得我上面提到的效果,只有滚动视图才能滚动,如果您从顶部开始。 – Doc

回答

1

尝试使用自定义导航栏。从UINavigation栏继承,然后添加一个子视图,并在其中添加一个手势。

+0

我可以将子视图添加到默认的UINavigationBar上,该UINavigationBar上有一个手势识别器,但我宁愿将触摸直接传递给滚动视图,而不是有可能的单独手势识别器。 – Doc

+0

@Doc但我不确定它是否会将导航栏边缘和视图顶部的姿势放在一起。 –

+0

我结束了诉诸这个伎俩。老实说,不是我想要的,但至少它解决了主要问题。 – Doc