How to hide future or past dates in UIDatePickerVi

2019-06-27 03:32发布

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.

2条回答
Explosion°爆炸
2楼-- · 2019-06-27 04:07

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
查看更多
放荡不羁爱自由
3楼-- · 2019-06-27 04:18

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

查看更多
登录 后发表回答