簡體   English   中英

日期選擇器快速iOS

[英]Date Picker swift 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()
}

上面的比較不起作用給我一個錯誤,總是說找不到'>'或'<'的重載

感謝您的任何幫助

據我所知,除非Apple添加了新的API,UIDatePicker(通常是UIPickerView),否則沒有方法從中獲取滾動事件。

我認為您最好的辦法是為ValueChanged事件的選擇器添加目標方法,當用戶停止在日期上滾動時,該方法將調用該方法。

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM