如何检测用户何时点击 UIDatePicker 中的选择指示器?
如果没有这个,用户必须滚动到某个其他日期,然后再次返回以选择当日期选择器向上滑动时在选择指示器下显示的日期。
多谢,
Stine
更新:这是我自己能想到的唯一解决方案:
UIDatePicker *aDatePicker = [[UIDatePicker alloc] init];
self.datePicker = aDatePicker;
[aDatePicker release];
[self.datePicker addTarget:self action:@selector(datePicked:) forControlEvents:UIControlEventValueChanged];
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(datePicked:)];
[self.datePicker addGestureRecognizer:tap];
[tap release];
意思就是datePicked
当用户实际旋转滚轮时将被调用两次。
更新:上述解决方案不适用于 UIPickerViews。我不知道在这些情况下如何实现所需的行为。
您可以通过以下方式进行一些调整:-
符合委托<UIGestureRecognizerDelegate>
在你的 .h 文件中
UITapGestureRecognizer* gestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(pickerViewTapGestureRecognized:)];
[yourDatePicker addGestureRecognizer:gestureRecognizer];
gestureRecognizer.delegate=self;
gestureRecognizer.numberOfTapsRequired=2;//Whenever you do double tap it will called. So allow user to do double tap on selected date.
//下面是Delegate方法
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
return YES;
}
//双击时会触发以下方法
-(void)pickerViewTapGestureRecognized:(UITapGestureRecognizer*)recognizer
{
UIDatePicker *datePicker=(UIDatePicker*)[[recognizer view] viewWithTag:101];
NSLog(@"datePicker=%@", datePicker.date);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)