最近在使用UISlider控件控制音频播放进度时,遇到一个问题,即:UISlider所在的UIView上已经添加了UIPanGestureRecognizer类型手势,用来处理向右拖动整个View时取消显示,但这样一来,拖动UISlider就变成了响应手势,而无法正常使用UISlider。
经过一番查找资料和尝试,问题得到解决,方法如下:
给UIPanGestureRecognizer添加代理(UIGestureRecognizerDelegate),UIGestureRecognizerDelegate中有一个方法:
-(BOOL)gestureRecognizer:(UIGestureRecognizer*)gestureRecognizer shouldReceiveTouch:(UITouch*)touch;
在进入手势识别事件之前,先进入该方法,对那些不需要响应手势事件的事件(如拖动UISlider),可以通过返回一个NO型布尔值不响应手势识别;而对于需要响应手势识别的情况,只需要返回一个YES就可以。
下面举例说明:
首先添加手势识别,并给手势识别指定代理
⋯⋯
UIPanGestureRecognizer* panRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:selfaction:@selector(handlePanGesture:)];
[panRecognizer setMaximumNumberOfTouches:1];
[panRecognizer setDelaysTouchesBegan:TRUE];
[panRecognizer setDelaysTouchesEnded:TRUE];
[panRecognizer setCancelsTouchesInView:TRUE];
//为手势识别器设置代理
panRecognizer.delegate = self;
[self.view addGestureRecognizer:panRecognizer];
[panRecognizer release];
⋯⋯
然后,实现UIGestureRecognizerDelegate的方法:
// 当拖动UISlider时会被误认为是手势,所以在这个判断一下
-(BOOL)gestureRecognizer:(UIGestureRecognizer*)gestureRecognizer shouldReceiveTouch:(UITouch*)touch {
if([touch.view isKindOfClass:[UISlider class]])
return NO;
else
return YES;
}
ps其他手势其他控件以此类推
相关推荐
列举了UISlider的一些常用属性及用UISlider控制uilabel内字体的大小,
ios的UISlider自定义,用图片自定义添加
UISlider Demo IOS 控件 代码
自定义UISlider, 翻页时显示页数, 翻页进度, 点击slider滑块快速翻页
一个实用的自定义双按钮UISlider实例: 1、可根据用户需要设定最大值和最小值; 2、可以实时获取左侧按钮和右侧按钮分别对应的值; 3、滑动灵活精准,数值变化实时准确; 4、完全开源,开以者可以根据自己需要做相应...
移动滑动条就可以设置文字控件背景颜色的绿色纸 在文字控件中设置0~1.0的浮点值就卡可以设置文字控件背景颜色的红色值 核心带啊: float fAlpha = mySlider.value / (mySlider.maximumValue-mySlider.minimumValue...
UISlider控制背景颜色
UISLider滑条图标大小位置,滑条大小颜色形状设置Demo
UISlider-TrackHeight 调整UISlider的滑动条高度 Import pod 'UISlider-TrackHeight', '~> 1.0.2' Usage #import "UISlider+VDTrackHeight.h" self.slider.vd_trackHeight = 5.0f; License
iphone中的基础控件UISlider,适合初学者,主要学习UISlider的常用属性设置、点击事件、以及替换滑块图片等
fontSettingDemo实现了以下功能: ... 2.在具体的设置页面,滑动Slider可以调整UILable中字体的大小,并用一个UILable来显示Slider当前的值(即当前字体的值)。 3.将用户设置的字体大小存入一个plist配置文件,当再次...
详细讲解UISlider的用途,以及基本的实现方法,有执行代码
TGP控件带有刻度和动画标签的滑块(快速) TGPControls是UISlider和UILabel的UISlider替代,具有Interface Builder中的视觉预览,单眼线检测,流畅的动画,简单的API,强大的自定义功能。什么是DiscreteSlider? ...
基于系统UISlider 解决滑块不灵敏 显示百分比
通过UISlider的滑动来改变window的背景颜色,并且可以根据window的背景颜色来改变slider的value值。
实现了一个有两个滑块,可以选择一个范围的UISlider。是在网上找到的一个控件的基础上作了包装,可以实时显示现在选择范围。可用于选择价格范围等。 现有的问题: 1、没有实现step的功能。 2、滑块的滑动还不是特别...
G8SliderStep, Swift 可以拖动,Tappable,可以检查性,适用于iOS的自定义范围 UISlider, 使用 Swift - Draggable,Tappable编写的用于iOS的自定义范围 UISlider ( written )工作原理 示例 插件功能:准备使用轻松...
源码JAMAccurateSlider,JAMAccurateSlider是UISlider的一个子类,行为非常类似于UISlider。当用户滑动滑块儿时,给定范围两端会出现两个小的卡尺,以展示精确程度。 测试环境:Xcode 5.0,iOS 6.0以上
IOS应用源码——UIslider转圆圈.zip