测试用例很容易复现:下载苹果的PhotoScroller示例应用程序,并尝试对其进行调整,以便平移(围绕缩放图像以及在每个图像之间)仅适用于两根手指。
将 pagingScrollView
和 imageScrollView
的 panGestureRecognizer
设置为仅接受最少和最多 2 次触摸似乎是一个好地方开始,但是它不起作用。它让您可以用两根手指滚动图像*,但是分页功能不起作用。
我已经尝试了很多设置和自定义手势识别器的组合,但我有点难过。自定义 ScrollView 子类是否有任何用处,或者我可以以某种方式操纵 ScrollView 委托(delegate)方法使其工作吗?
*编辑:实际上,在这种情况下滚动效果不佳。 View 不再像单次触摸那样平滑滑动...
更新:我仍在努力解决这个问题。如果有人玩过 UIGestureRecognizer
和 UIScrollView
,我将不胜感激。
编辑:
将 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 示例应用程序之上进行的。我希望这些简单的更改适用于双指交互,但是副作用很奇怪(如上所述)。
最佳答案
这似乎是不可能的,或者非常非常困难(即从头开始滚动您自己的 ScrollView )。我使用了 Apple 技术支持事件,他们无法提供帮助。如果有可用的解决方案,我会很乐意将其标记为已接受的答案!
关于ios - 使用两指平移和缩放对 UIScrollView 进行分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8025102/