2012-11-15 19 views

回答

0

遗憾地告诉你,但UIDatePicker不支持设置有效时间为像你所描述的。唯一的选择是最小和最大日期。如果你真的需要这个,你需要从零开始构建一个自定义控件,这将花费大量的精力。

+0

但是,如何在UIDatePicker中绘制时间到另一种颜色? – Pavel

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]; 
         } 
        } 
       } 
      } 
     } 
    } 

enter image description here

我需要捕捉事件滚动的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) { 

enter image description here

我尝试另一种方式,但它不起作用

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) { 
+0

所以这是你自己的问题的答案?这对你有用吗? – sunkehappy

+0

我可以更改DatePicker中的标签颜色,但DatePicker滚动时我无法捕获操作 – Pavel

相关问题