2011-03-14 73 views

回答

0

有它基本上触发每次滚动选择器

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component 

将代表您选择器的时间UIPickerViewDelegate方法,实现这个方法,看看会发生什么......

[编辑]好了,现在我明白你的需要了。 实施一个检查选取器状态的定时器。

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。这不是最精确的方法来检查移动,但我认为它应该做的工作...

+0

我已经实现了,但它不符合我的目的。我需要像真正的虚假值告诉pickerView滚动。 – 2011-03-14 22:30:40

0

有一个技巧来检测此,但没有委托方法/属性来检测其滚动或不

  1. 采取属性作为isScrolling
  2. 组isScrolling为true func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String?或等效方法
  3. 组isScrolling为true func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int)

希望这可以帮助