ios – 使用双指平移和缩放分页UIScrollView

前端之家收集整理的这篇文章主要介绍了ios – 使用双指平移和缩放分页UIScrollView前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
测试用例很容易复制:下载Apple的 PhotoScroller示例应用程序,并尝试对其进行调整,以便平移(在缩放图像周围和每个图像之间)仅适用于两个手指.

将pagingScrollView和imageScrollView的panGestureRecognizer设置为仅接受min&最多2次触摸似乎是一个很好的起点,但它不起作用.它允许你用两根手指滚动图像就好*,但是分页然后不起作用.

我已经尝试了很多设置组合和自定义手势识别器,我有点难过.自定义滚动视图子类是否有用,或者我可以以某种方式操纵滚动视图委托方法使其工作?

*编辑:实际上,在这种情况下它不会滚动.只需轻轻一按,视图就不再顺畅滑动……

更新:我还在努力解决这个问题.我很感激来自使用过UIGestureRecognizers和UIScrollViews的人的一些意见.

编辑:

将ImageScrollView类设置为仅接受两个触摸:

- (id)initWithFrame:(CGRect)frame
{
    // ...
    // Template code
    // ...

    [self.panGestureRecognizer setMinimumNumberOfTouches:2];
    [self.panGestureRecognizer setMaximumNumberOfTouches:2];
}

将PhotoViewController的pagingScrollView设置为仅接受两个触摸:

- (void)loadView
{
    // ...
    // Template code
    // ...

    [pagingScrollView.panGestureRecognizer setMinimumNumberOfTouches:2];
    [pagingScrollView.panGestureRecognizer setMaximumNumberOfTouches:2];
}

这些修改直接在PhotoScroller示例应用程序之上进行.我希望这些简单的改变适用于双指互动,但副作用很奇怪(如上所述).

解决方法

子类似乎是这样的方式

该文档指出您可以通过子类化来操纵滚动手势的处理方式.

UIScrollView Class Reference

特别

Subclasses can override the
touchesShouldBegin:withEvent:inContentView:,pagingEnabled,and
touchesShouldCancelInContentView: methods (which are called by the
scroll view) to affect how the scroll view handles scrolling gestures.

您还应该看看这篇SO帖子,Scrolling with two fingers with a UIScrollView

猜你在找的iOS相关文章