如果我有一个UIDatePicker,我希望将最小和最大日期范围设置为30年前和future 30年之间,我将如何设置?

推荐答案

没有测试,但你可能想要这样的东西.

NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *currentDate = [NSDate date];
NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setYear:30];
NSDate *maxDate = [calendar dateByAddingComponents:comps toDate:currentDate options:0];
[comps setYear:-30];
NSDate *minDate = [calendar dateByAddingComponents:comps toDate:currentDate options:0];

[datePicker setMaximumDate:maxDate];
[datePicker setMinimumDate:minDate];

Swift 4.1更新

let calendar = Calendar(identifier: .gregorian)
var comps = DateComponents()
comps.year = 30
let maxDate = calendar.date(byAdding: comps, to: Date())
comps.year = -30
let minDate = calendar.date(byAdding: comps, to: Date())
datePicker.maximumDate = maxDate
datePicker.minimumDate = minDate

Objective-c相关问答推荐

将 NSInteger 转换为 NSIndexpath

从 C# 到 Objective C 会有多大的飞跃

禁用手势识别器

获取按其各自值排序的 NSDictionary 键

如何获取 NSArray 的最后一个对象

从 Unix 时间戳创建 NSDate

NSUInteger 不应该在格式字符串中使用吗?

Grand Central Dispatch (GCD) 与 performSelector - 需要更好的解释

检测代码是否在 Objective-C 的主线程上运行的正确方法是什么? (iOS)

如何计算多边形的圆角?

xcode storyboard Container View - 如何访问视图控制器

在Objective-C中替换字符串中的一个字符

自定义 UINavigationBar 背景

如何禁用 UIButton?

UIWebView didFinishLoading 多次触发

UITableView ,重新加载时滚动到底部?

ARC 下的 NSString 属性应该是强的还是复制的?

更改 UITextField 占位符字体

如何在 Objective-C 中创建可变参数方法

UITableViewCell中的文本居中对齐问题