2015-11-06 44 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 –