2
我對拾取器下面的代碼含有2個組分:uipickerview含有2種組分代表
- (void)pickerView:(UIPickerView *)pickerView didSelectRow: (NSInteger)row inComponent:(NSInteger)component {
if (component == 0) {
NSLog(@"first");
}
else
{
NSLog(@"second");
}
}
問題當用戶嘗試滾動部件0的第一和等待它完全停止之前,然後滾動部件1與此同時。
然後我只會有「秒」的控制檯日誌。所以看起來第一個事件被第二個事件覆蓋了。
有沒有一種方法可以讓我們等待拾取器滾動事件自行完成?
謝謝。
我沒有看到問題:如果用戶滾動組件0,並且不等待它完成滾動(並開始滾動組件1),那意味着他不需要選擇組件0。當組件0在停止前滾動時,將組件0設置爲它的初始位置。 – 2012-07-23 15:18:16
你有2個組件,聲明2個整數,用零初始化它們。現在,在didSelectRow中相應地將這些整數設置爲組件中的選定行。在設置它們之後,以編程方式將pickerview滾動到這些整數中的行。所以如果一個組件沒有停止滾動,它會回滾。請注意不要進入這裏的無限循環(我擔心會發生) – 2012-07-23 15:22:24
讓我們以默認的鬧鐘應用爲例,當用戶設置鬧鐘時,他可以同時撥打「小時」,然後「分鐘」組件,當點擊保存時,我們會得到正確的時間。但不幸的是我不能得到這種行爲:( – lucas 2012-07-23 15:23:37