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

前端之家收集整理的这篇文章主要介绍了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&C++相关文章