感谢shuai265的博客的博文
When I see you looking back at me...
如上图,项目要求滑动滑块实时进行网络请求,目前给slider添加valueChanged事件,但是在开发的时候,出现一个问题:slider的valueChanged在触发滑动的时候会多次被触发,导致多次网络请求以及出现请求失败情况。
找到使用以下几种解决办法:
1.使用slider的固有属性continuous。
在手指离开屏幕时出发UIControlEventValueChanged事件
@property(nonatomic,getter=isContinuous) BOOLcontinuous; // if set, value change events are generated any time the value changes due to dragging. default = YES
2.将 UISlider 对象的 event 设置为 UIControlEventTouchUpInside / UIControlEventTouchUpOutside / UIControlEventTouchCancel。但容易引发与页面其它内容的手势冲突。
3.在以下动作方法中加入判断
- (void)touchesEnded:(NSSet*)touches withEvent:(UIEvent*)event;*
- (void)touchesCancelled:(NSSet*)touches withEvent:(UIEvent*)event;