我有一个自定义开关
UICustomSwtich
:UISlider
从这里下载
这个怎么运作
UICustomSwitch
覆盖此触摸事件以使其工作,因为它必须工作:
- (void)endTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event
- (void)touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event
- (void)touchesEnded:(NSSet*)touches withEvent:(UIEvent*)event
好的测试
UICustomSwitch
在任何情况下都能完美运行UIView
,甚至在UIScrollView
. 当必须调用三个触摸事件时,它会被正确调用。
坏作品
这是我的问题。我有一个UITableView
从 StoryBoard 设计的具有这种层次结构的静态:
UITableView
> UITableViewCell
> UIView
>UICustomSwitch
在这种情况下:
- (void)touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event
这个函数被正确调用
- (void)touchesEnded:(NSSet*)touches withEvent:(UIEvent*)event
- (void)endTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event
当我移动拇指小于杆的长度时,拇指保持在我离开它的同一点(问题)。
当我向左和向右移动拇指(上升到小节的末端)时,这两种方法被调用(非常奇怪的行为,不是吗?)。
我寻找答案,发现具有不同解决方案的类似问题,但对我的问题有任何好处。
为什么触摸事件有时会到达我的UICustomSwitch
,有时不会?为什么结束和 trackingWithTouch 事件而不是开始事件?
提前致谢。