UIScrollView和内容需要触摸移动事件
我有一个使用单点触摸事件(单指)进行绘制的视图(线条,循环,文本等)。 现在我想把这个视图放在UIScrollView中,这将允许缩放和平移。 当然,两个手指都需要执行缩放和平移。
这种模式是做什么的? 我发现只有当UIScrollView的内容只接受单击(它只包含一个button)的例子。 当内容需要时,什么也没有做什么接触移动。
访问UIScrollView上的panGestureRecognizer属性,并将其minimumNumberOfTouches属性设置为两个:
myScrollView.panGestureRecognizer.minimumNumberOfTouchesRequired = 2;
我想你应该开始滚动禁用 scrollview和用户交互启用两者 。 然后在touchesBegan:你应该检查触点的数量。 如果只有一个(也就是用户想绘制),你什么都不做(禁用scrollview的交互也会禁用所有的子视图)。 但是,如果触点的数量大于1,则启用滚动,然后执行
[UIView setUserInteractionEnabled: NO]
这样,在UIScrollView上捏或放大两个手指时,UIView上不应该绘制任何线条。
我帮助开发了一个应用程序,需要在滚动视图中使用签名板,而滚动视图的子视图很奇怪以触及事件,有时您必须将手指放在那里才能通过滚动视图并到达内部视图,所以有一点滞后…但我最终做的是inheritance一个UIScrollView并覆盖
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event {}
方法,如果触摸降落在签名板的框架,它会[scrollView setScrollEnabled:NO]; 而绘图发生得越来越平滑…唯一的问题是他们不能从那个盒子滚动滚动视图..基本上我创build了一个死循环与滚动视图
但是,这有点不可思议,我认为一个UITableView可能会更好的为你…只是使它1巨型表格单元格,我认为你会得到更好的结果….
不要忘记为这些function启用“多点触摸”。
- iOS – NotificationCenter addObserver“UIMenuControllerWillHideMenu”
- 从本地联系人应用程序中检索选定的组
- 在没有Cocoapods的情况下手动集成Firebase和Google Sign In SDK时重复的符号
- 如何从iPhone图片库浏览图片?
- 获取UILabel中第一行的string
- iOS应用程序:常见主题为:SIGSEGV和_sigtramp的几次崩溃
- 如何访问自定义TableViewCell中的button的索引path?
- UIAlertView开始显示,屏幕变暗,但它不会popup,直到为时已晚!
- 我们可以locking应用程序,而iPhone进入睡眠模式?