我有UIDatePicker,我想在UIDatePicker中绘制时间,例如灰色
我需要这个,如果在我的图形中画了一些间隔,那么在datePicker用户无法选择这个时间
答案 0 :(得分:0)
很抱歉告诉您,但UIDatePicker
不支持设置您所描述的有效时间范围。唯一的选择是最短和最长日期。如果你真的需要这个,你需要从头开始构建一个自定义控件,这需要花费很多精力。
答案 1 :(得分:0)
我想我找到了解决办法,我可以抽出时间换另一种颜色
for (UIView *view in datePicker.subviews) {
for (UIView *subView in view.subviews) {
for (UIView *subSubView in subView.subviews) {
for (UIView *thirdSubView in subSubView.subviews) {
for (UILabel *label in thirdSubView.subviews) {
if ([label isKindOfClass:[UILabel class]]) {
label.textColor = [UIColor redColor];
}
}
}
}
}
}
我需要在滚动DatePicker时捕获事件,我这样做,这项工作,但我打破了滚动
for (UIView *view in datePicker.subviews) {
for (UIView *subView in view.subviews) {
Class UIPickerTableView = objc_getClass("UIPickerTableView");
if ([subView isKindOfClass:UIPickerTableView]) {
UITableView *sub = (UITableView *) subView;
sub.delegate = self;
}
for (UIView *subSubView in subView.subviews) {
我尝试了另一种方式,但它不起作用
for (UIView *view in datePicker.subviews) {
for (UIView *subView in view.subviews) {
Class UIPickerTableView = objc_getClass("UIPickerTableView");
Method targetMethod = class_getInstanceMethod(UIPickerTableView, @selector(scrollViewDidScroll:));
Method newMethod = class_getInstanceMethod(UIPickerTableView, @selector(__scrollViewDidScroll:));
method_exchangeImplementations(targetMethod, newMethod);
for (UIView *subSubView in subView.subviews) {