objective-c – 触摸UISlider可以阻止UIScrollView的滚动
发布时间:2020-12-16 06:02:32 所属栏目:百科 来源:网络整理
导读:我在UIScrollview内有一个(垂直)UISlider.我希望能够更改滑块的值,而不用抬起手指,滚动向左或向右滚动. 所需行为: 在垂直UISlider内触摸,然后左手或右键拖动滚动浏览 实际行为: 在垂直UISlider内向下触摸,其次是左右的手指拖动在UIScrollview中不会移动. U
我在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:等). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |