我正在实现一些带有日期选择的东西,结果发现Apple的UIDatePicker实现使用无限循环几天和几个月。 用简单的英语来说,不可能达到1的上限,也不可能达到12或31的底部。它只是永远地循环开始两个集合再次使用1,依此类推,这是从我非常主观的角度来看这个UI组件的最愚蠢的想法。
使用此选择器的UX使得旋转速度非常快,因此实际上很难找到正确的数字。如果它是11月,我需要2月,那么用快速顶点击中顶部要快得多。滑动,然后稍微向下移动到2月,我宁愿做一些不稳定的动作,直到我发现2月在无限集中。
看着班级参考,我似乎找不到任何东西。它也不是超类 似乎有一个合适的财产。
任何appstore安全的想法(例如自定义实现......作为最后的手段)?
答案 0 :(得分:0)
我过去在另一个stackoverflow问题中使用过以下代码并且效果很好。
How to set Minimum time to appear as default in UIDatepicker everytime
int startHour = 7;
int endHour = 11;
NSDate *date1 = [NSDate date];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier: NSGregorianCalendar];
NSDateComponents *components = [gregorian components: NSUIntegerMax fromDate: date1];
[components setHour: startHour];
[components setMinute: 0];
[components setSecond: 0];
NSDate *startDate = [gregorian dateFromComponents: components];
[components setHour: endHour];
[components setMinute: 0];
[components setSecond: 0];
NSDate *endDate = [gregorian dateFromComponents: components];
[userTimePicker setDatePickerMode:UIDatePickerModeTime];
[userTimePicker setMinimumDate:startDate];
[userTimePicker setMaximumDate:endDate];
[userTimePicker setDate:startDate animated:YES];
[userTimePicker reloadInputViews];