嘿,有没有办法确定UIPickerView目前正在滚动,我真的需要我的应用程序的功能,这非常重要。谢谢!
答案 0 :(得分:0)
有一个UIPickerViewDelegate方法,每次滚动选择器时都会触发该方法
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
设置选择器的委托,实现此方法,看看会发生什么......
[编辑]好了,我知道你需要什么。 实现一个计时器,检查选择器的状态。
checkTimer = [NSTimer scheduledTimerWithTimeInterval:0.01 target:self selector:@selector(checkPicker) userInfo:nil repeats:YES];
在上面的委托方法中,存储上次移动选择器的时间。
lastPickerDate = [[NSDate date] retain];
checkPicker方法中的检查从上次移动开始经过的时间
NSTimeInterval timeSinceMove = -[lastPickerDate timeIntervalSinceNow];
如果timeSinceMove大于某个所需的值,即0.5秒,则将BOOL pickerMoving设置为false。否则将其设置为true。这不是检查运动的最精确方法,但我认为它应该起作用......
答案 1 :(得分:0)
有一个技巧可以检测到这个但是没有委托方法/属性来检测它是否滚动
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String?
或等效方法func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int)
希望这会有所帮助