2015-12-21 73 views
1

我是Swift的新手。在我的應用程序中,我有一個日期選擇器概念。我的問題是當選擇日期按鈕,日期選擇器顯示正常假設我選擇DEC 20 2015。我的問題是滾動日期選取器輪非常快,並按我完成日期選擇器工具欄日期不按鈕。如果我打開日期選擇器,我想顯示先前選擇的日期示例DEC 20 2015。但是當我滾動得更快時,它顯示了其他一些日期。swift中的DatePicker問題

var datePicker:UIdatePicker 
func dateselcted() 
{ 
    var date:NSDate = NSDate() 
    datePicker.minimumdate = date 
    if cell.dateText.characters.count == 0 
    { 
     //If user not select any date I am showing current date and working fine 
     var dateOb:AnyObject = 
     datePicker.setdate(date ,animated:false) 
    } 
    else 
    { 
     // Suppose user select DEC 20 2015 storing this date in one object example below and working fine but it is fails when scroll datepicker wheel very fast then it is showing the other date how to show "DEC 20 2015 " when picker wheel scrolls fastly I want to show date what I selected 

     var dateOb:AnyObject = DEC 20 2015 
     datePicker.setdate(dateOb as nsdate ,animated:false) 
    }  
} 
+0

是我想在按下完成按鈕之前停止輪子嗎?否則當選擇器出現時如何顯示上一個選定日期 –

回答

0

在按下完成按鈕之前您是否在等待滾動停止?這可能是你的問題。

This answer可能有你在找什麼。

委託

pickerView:didSelectRow:inComponent: 

不叫,直到選擇器停止旋轉。如果您需要在旋轉時確定選定的行,則需要編寫一些邏輯來猜測按下完成時的狀態。

+1

是我想在按下完成按鈕之前停止輪子嗎?否則如何顯示上次選定日期選擇器出現.i跟着設定的日期,但當選取器快速滾動時失敗 –

+0

我編輯了我的評論以獲取更多信息。 – Stephen

1

日期選取器僅在輪子停止旋轉時調用其操作方法。當車輪從價值轉變爲價值時,您不會被連續調用。

它看起來不像有任何設施,做你想做的而且(獲得通知的價值變化在日期選擇器旋轉車輪。)

,我不認爲的價值日期選擇器(或常規的UIPickerView)會一直改變,直到它停止旋轉,所以如果您開始旋轉並在停止之前單擊該按鈕,它仍然具有舊值。

+0

你說的是正確的,但我的問題是如何設置日期舊日期時,每次出現選擇器 –

+1

我不確定你在問什麼。日期選擇器具有日期屬性。如果您想將其設置爲特定的日期,請使用類似'datePicker.date = someDate'的代碼。這將把日期選擇器設置爲你想要的特定日期。 –

0

沒有辦法選擇像你這樣的日期,但仍然期望日期選擇器自動選擇你想要的日期。該設備不知道我們在想什麼。通常情況下,用戶在看到日期被選中之前不會按下按鈕。所以,我認爲你的擔心是微不足道的。