日期选择器swift iOS

时间:2015-11-06 01:42:25

标签: ios swift datepicker uidatepicker

所以我将日期选择器设置为

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()
}

以上比较不起作用给我一个错误,一直说找不到'&gt;'的重载或'&lt;'

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

据我所知,除非Apple添加了新的API,UIDatePicker(以及一般的UIPickerView),否则没有方法可以从中获取滚动事件。

我认为您可以做的最好的事情是为ValueChanged事件的选择器添加一个目标方法,当用户停止滚动某个日期时,该事件将调用一个方法。

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

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