2011-03-14 46 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)

希望這可以幫助

相關問題