ios scrollview添加点击事件,隐藏控件
2015-12-31 11:14
441 查看
今天在做一个项目的时候,遇到这样一个问题,我添加了一个scrollview这个控件,然后在这个控件上面有一个时间控件,我要实现的就是,当我点击空白处的时候,隐藏这个时间控件,以前的时候,没有scrollview的个控件在上面,所以使用的是
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event这种方法,但是今天加了scrollview以后,这个方法没有反应,具体原因如下:
scrollview的工作原理,当手指touch的时候,scrollview会拦截event,等待一段时间,在这段时间内,如果没有手指,没有移动,当时间结束时候,scrollview会发送tracking events到子视图上。在时间结束前,手指发生了移动,那么scrollview就会进行移动,从而取消发送tracking。
我的解决方法如下,贴出来希望对用到的人有所帮助、
- (void)viewDidLoad {
[super
viewDidLoad];
self.myScroll.delegate =
self;
UITapGestureRecognizer *recognizer = [[UITapGestureRecognizer
alloc]
initWithTarget:self
action:@selector(touchScrollView)];
[recognizer
setNumberOfTapsRequired:1];
[recognizer
setNumberOfTouchesRequired:1];
[self.myScroll
addGestureRecognizer:recognizer];
}
- (void)touchScrollView
{
self.datePicker.hidden=YES;
}
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event这种方法,但是今天加了scrollview以后,这个方法没有反应,具体原因如下:
scrollview的工作原理,当手指touch的时候,scrollview会拦截event,等待一段时间,在这段时间内,如果没有手指,没有移动,当时间结束时候,scrollview会发送tracking events到子视图上。在时间结束前,手指发生了移动,那么scrollview就会进行移动,从而取消发送tracking。
我的解决方法如下,贴出来希望对用到的人有所帮助、
- (void)viewDidLoad {
[super
viewDidLoad];
self.myScroll.delegate =
self;
UITapGestureRecognizer *recognizer = [[UITapGestureRecognizer
alloc]
initWithTarget:self
action:@selector(touchScrollView)];
[recognizer
setNumberOfTapsRequired:1];
[recognizer
setNumberOfTouchesRequired:1];
[self.myScroll
addGestureRecognizer:recognizer];
}
- (void)touchScrollView
{
self.datePicker.hidden=YES;
}
相关文章推荐
- flex 控件的重要属性
- Delphi控件ListView的属性及使用方法详解
- web下载的ActiveX控件自动更新
- WinForm实现按名称递归查找控件的方法
- C#中父窗口和子窗口之间控件互操作实例
- Android编程之Button控件用法实例分析
- Android控件之CheckBox、RadioButton用法实例分析
- MFC中动态创建控件以及事件响应实现方法
- WinForm自定义函数FindControl实现按名称查找控件
- Android控件之ProgressBar用法实例分析
- WinForm拖拽控件生成副本的解决方法
- ASP.NET动态添加用户控件的方法
- ASP.NET的HtmlForm控件学习及Post与Get的区别概述
- WinForm实现移除控件某个事件的方法
- C#分屏控件用法实例
- 可以浮动某个物体的jquery控件用法实例
- jQuery操作表单常用控件方法小结
- C#的winform控件命名规范
- Jquery给基本控件的取值、赋值示例
- ASP.net 动态加载控件时一些问题的总结