objective-c – 触摸UISlider可以阻止UIScrollView的滚动

我在UIScrollview内有一个(垂直)UiSlider.我希望能够更改滑块的值,而不用抬起手指,滚动向左或向右滚动.

所需行为:

在垂直UiSlider内触摸,然后左手或右键拖动滚动浏览

实际行为:

在垂直UiSlider内向下触摸,其次是左右的手指拖动在UIScrollview中不会移动. UiSlider之外的一个触摸后跟拖动将按预期滚动滚动视图

UIView有一个名为exclusivetouch的属性,好像它可能与我的问题有关.我试着把它设置为NO,没有运气.

那么,如何设置我的UiSliders,以便它们之下的scrollview会响应来自UiSliders内的触摸?

解决方法

你试过子类化UIScrollView并实现 – (BOOL)touchesShouldCancelInContentView:(UIView *)视图?根据苹果文档:
// called before scrolling begins if touches have already been delivered to a subview of the scroll view. if it returns NO the touches will continue to be delivered to the subview and scrolling will not occur
// not called if canCancelContenttouches is NO. default returns YES if view isn't a UIControl

假如你的UIScrollView只能水平滚动,如果你的视图是你的UiSlider,那么你可以简单地返回NO.如果这不起作用,您可能需要为UIScrollView和您的UiSlider进行自定义触摸处理(即覆盖触摸屏,包括事件:与…触摸:withEvent:等).

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...