UIPanGestureRecognizer手势影响UISlider拖动的问题及解决办法
2015-06-11 09:48
447 查看
UIPanGestureRecognizer手势影响UISlider拖动的问题及解决办法
分类: iOS2012-03-3009:04 4158人阅读 评论(0) 收藏 举报
uiviewclass
最近在使用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;
}
相关文章推荐
- java.sql.SQLException: Can not issue data manipulation statements with executeQuery().
- MUI仿今日头条第三集--侧滑菜单制作
- java.sql.SQLException: Can not issue empty query.
- java.sql.SQLException: Can not issue empty query.
- 跳出手掌心--如何立即触发UIButton边界事件
- 帮学长的jfinal+easyui
- “XXX.Index”不扩展类“System.Web.UI.Page”,因此此处不允许的问题
- “XXX.Index”不扩展类“System.Web.UI.Page”,因此此处不允许的问题
- MongoVUE模糊查询,更新单个字段
- DuiVision开发教程(17)-对话框
- First Class: UI of Android
- Invalid result location value/parameter
- First class: UI design for Android
- Bluemix云平台实战日志:VitualMachine root
- Java——(六)Collection之Queue集合
- Your build settings specify a provisioning profil
- 脚踏实地向前走
- 为什么远丰ERPbuilder是企业首选的电商ERP系统
- 上海远丰发布IMBuilder云通讯解决方案
- 上海远丰MallBuilder:互联网+时代商城系统的新模式