【问题标题】:UIDate Picker background color [duplicate]UIDatePicker 背景颜色 [重复]
【发布时间】:2010-08-12 15:07:27
【问题描述】:

您好,我想将 UIDatePicker 的背景颜色从当前的光泽图像更改为清除,就像在这个示例中一样


(来源:apple.com

任何想法如何做到这一点?我试过了

datepicker.backgroundColor = [UIColor clearColor];

但它没有工作。

【问题讨论】:

    标签: iphone


    【解决方案1】:

    UIDatePicker 包含一个子视图。反过来,该子视图包含形成 UIDatePicker 外观的 15 个其他子视图。它们的第一个和最后一个是背景,因此要使其透明,只需将它们关闭并将主子视图的背景颜色设置为 clearColor:

    // create the picker
    UIDatePicker *datePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, 40, 320, 320)];
    
    // add it to some view first
    [actionSheet addSubview:datePicker];
    [datePicker release];
    
    // clear the background of the main subview
    UIView *view = [[datePicker subviews] objectAtIndex:0];
    [view setBackgroundColor:[UIColor clearColor]];
    
    // hide the first and the last subviews
    [[[view subviews] objectAtIndex:0] setHidden:YES];
    [[[view subviews] lastObject] setHidden:YES];
    

    【讨论】:

    • 这会被苹果接受吗?似乎它依赖于可能在未来版本中改变的内部实现细节。
    • 当然,UIDatePicker 内部实现将来可能会被 Apple 更改。至于应用审查过程,有几个 UI 元素不允许更改其背景(如 UIDatePicker、UISearchBar 等),但在某些应用程序中,它们在默认背景下看起来很尴尬。虽然这种控件调整不是一个好的做法,但 Apple 了解 UI 元素的限制,并允许应用程序包含看起来不错的自定义控件。
    • 我得考虑一下。对于我的应用程序来说,这对我来说似乎太危险了。我们没有来自客户的维护合同,因此我们必须希望它尽可能长地存在而不被平台更改破坏。搞乱内部实现可能没问题,但似乎更有可能在下一个版本的 iOS 中崩溃,所以我不知道我们是否可以冒险。无论如何,感谢您的反馈。
    猜你喜欢
    • 2013-03-04
    • 2014-08-01
    • 1970-01-01
    • 2017-09-08
    • 2021-08-23
    • 2013-01-21
    • 2011-11-29
    • 2013-01-08
    • 2019-09-07
    相关资源
    最近更新 更多