我有一个层次结构,其中UIScrollviews存在于彼此之间。
如何将某个区域的卷帘事件重定向到内部滚动视图?
发布于 2010-03-05 07:33:54
如果您将UIScrollViews设置为只能在一个轴或另一个轴上滚动(即,为此适当设置它们的contentSize属性。要使视图只能垂直滚动,请将其contentSize.width值设置为与其bounds.size.width相同)。然后,假设没有两个视图在同一个轴上滚动,那么它们应该可以正常工作。通常,你会让“子”视图垂直滚动,而父视图水平滚动。
发布于 2010-03-16 22:37:32
如果可能的话,你应该重新设计来避免这种情况。Safari通过两个手指的嵌入式视图滚动来处理这种情况,即iframe和textareas。这不是很容易发现,但它比替代方案更好,后者会更令人沮丧。如果嵌入的视图仅显示在屏幕上,则尝试滚动外部视图可能会滚动内部视图,但不会显示太多内容;它将显示为无响应。
也就是说,如果您仍然想这样做,请尝试将外部滚动视图的canCancelContentTouches设置为NO。这将防止外部视图在内部视图中开始触摸时滚动。要获得Safari风格的双指滚动,可能需要对UIScrollView进行子类化并实现-touchesShouldBegin:withEvent:inContentView:方法。
https://stackoverflow.com/questions/2383487
复制相似问题