How to hide future or past dates in UIDatePickerView

别来无恙 提交于 2019-12-10 15:56:28

问题


I want to design a UI for setting date of birth. For that I am choosing UIDatePickerView. Now I want to restrict the dates to between 01-01-1990 and current date. It should not show future dates and past dates. Currently I am using the following code:

NSDateComponents *components=[[NSDateComponents alloc] init];

[components setYear:1900];

pickerView.datePicker.minimumDate = [[NSCalendar currentCalendar] dateFromComponents:components];
pickerView.datePicker.maximumDate=[NSDate date]

It is restricting the dates, but it is allowing the user to scroll to the future dates as well as past dates. How can I hide or avoid them?

I am able to see that feature in the contacts app on the iPad. To see go to Contacts --> press the "+" symbol on top, then press on add birthday button.


回答1:


it scroll but visible on gray color, but it is not selectable, it is not possible to stop on scroll

To Disable Past date :

 pickerView.datePicker.minimumDate=[NSDate date];

To Disable Future date :

pickerView.datePicker.maximumDate=[NSDate date];

if you need this compulsory in your app you need to try on some 3rdparty app like this




回答2:


To hide future dates, use this code:

let now = Date();
pickerviewOutletname.maximumDate = now

To hide past dates, use this code:

let now = Date();
pickerviewOutletname.minimumDate = now


来源:https://stackoverflow.com/questions/33104249/how-to-hide-future-or-past-dates-in-uidatepickerview

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!