2015-11-06 31 views
1

所以,我有我的日期選擇器設置爲日期選取器快捷的iOS

func configurePicker() 
{ 
    pickerContainer.frame = CGRectMake(0.0, 600.0, 320.0, 300.0) 
    pickerContainer.backgroundColor = UIColor(red: 6/225.0, green: 232/225.0, blue: 255/225.0, alpha: 0) 

    picker.frame = CGRectMake(0.0, 20.0, 320.0, 300.0) 
    let dateComponents = NSDateComponents() 
    dateComponents.year = -18 
    let dateComponents2 = NSDateComponents() 
    dateComponents2.year = -60 
    picker.maximumDate = NSCalendar.currentCalendar().dateByAddingComponents(dateComponents, toDate: NSDate(), options: nil) 
    picker.minimumDate = NSCalendar.currentCalendar().dateByAddingComponents(dateComponents2, toDate: NSDate(), options: nil) 
    picker.setDate(picker.maximumDate!, animated: true) 
    picker.datePickerMode = UIDatePickerMode.Date 
    pickerContainer.addSubview(picker) 
} 

,你能告訴我有一個最小和最大日成立。我也有一個我沒有包括的解僱功能。我的問題是,如何知道用戶何時低於最低和最高?我想要做的是在用戶低於最低限度時在後臺播放gif,並在高於最大限度時使用單獨的gif?有沒有辦法告訴用戶在日期選擇器輪上的位置?我知道日期選取器輪重置過了最小值和最大值,但我只是想知道是否有方法知道沒有用戶放開輪子的日期。例如這樣的條件語句,工程

if(picker.date > picker.maximumDate) 
{ 
    playgif1() 
} 
else if(picker.date < picker.minimumDate) 
{ 
    playgif2() 
} 

以上比較沒有工作給我一個錯誤口口聲聲說找不到「>」或過載「<」

感謝您的幫助

+0

如果選擇器值已更改自己可以監視和手動檢查日期是否有效 –

+0

對不起獅子座不能這樣做,我需要看的時候是高於上限和下限和單獨做gif相應地抱歉沒有明確說明 –

回答

1

據我所知,除非蘋果增加了一個新的API,UIDatePicker(和一般的UIPickerView),沒有方法從它們獲取滾動事件。

我認爲您可以做的最好的方法是將選擇器的目標方法添加到ValueChanged事件中,該事件將在用戶停止滾動日期時調用方法。

func configurePicker() { 
    //...other configuration 
    picker.addTarget(self, action: "datePicked:", forControlEvents: UIControlEvents.ValueChanged) 
} 

func datePicked(picker: UIDatePicker) { 
    // compare dates 
} 
+0

謝謝你改變的價值是有道理的,但我不允許做這種比較,這就是爲什麼我在那裏留下條件陳述,希望有人能夠向我展示我可以做出的比較,因爲我收到一個錯誤,說「無法找到接受參數||或>或<即使我比較ns日期 –

+0

@ Angatvhr Sanghera超載,您可以比較日期,但不喜歡他如何建議 –

+0

@AngatvirSanghera http:// stackoverflo w.com/a/28109990/2303865 –