滚动时自定义UIControl获取touchesCancelled; 如何禁用滚动?

nev*_*vyn 7 iphone uiscrollview uikit uicontrol

我正在写一个UISwitch替代品(带有自定义图形).我已经覆盖了touchesMoved和朋友,因此您可以在"是"和"否"之间拖动窗口小部件,就像使用UISwitch一样.

如果将它放在滚动视图中,如果用户将手指移动到对角线而不是完全水平位置,则触摸将被取消,并且滚动踢入.我注意到UISwitch和UIButton没有表现出这种行为,并且在操作这些控件时滚动从不开始.

我如何告诉UIKit我想要对这些触摸进行独占控制,实际上禁用了touchesBegan中的滚动并启用了滚动结束/取消?我敢肯定有一些东西很明显,但我已经通过页眉和文档UIControl,UIResponder,UIView的和UIScrollView的看了看,没有发现任何东西.

注意:我不想创建UIScrollView子类; 我无法想象,作为正确的解决方案,控制应该是完全独立的.

jni*_*nic 4

canCancelContentTouches = NO假设您乐意更改滚动视图上的属性,则在滚动视图和exclusiveTouch = YES自定义控件中进行设置允许此行为。