检测用户在UIDatePicker中点击选择指示符的时间?

Sti*_*ine 4 iphone objective-c

如何检测用户何时在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];
Run Code Online (Sandbox Code Playgroud)

这意味着datePicked当用户实际旋转车轮时将被调用两次.

更新:上述解决方案不适用于UIPickerViews.在这些情况下,我不知道如何实现通缉行为.

Hus*_*bir 5

你可以用这种方式做一些调整: -

<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.
Run Code Online (Sandbox Code Playgroud)

//以下是Delegate方法

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
    return YES;
}
Run Code Online (Sandbox Code Playgroud)

//双击时会触发下面的方法

-(void)pickerViewTapGestureRecognized:(UITapGestureRecognizer*)recognizer
{
   UIDatePicker *datePicker=(UIDatePicker*)[[recognizer view] viewWithTag:101];
   NSLog(@"datePicker=%@", datePicker.date);
 }
Run Code Online (Sandbox Code Playgroud)