ios 7 datePicker在项目上有不需要的白色背景,可能有bug

时间:2014-03-13 04:10:51

标签: ios ios7 uidatepicker

我有一个日期选择器并将背景设置为绿色。

myDatePicker.backgroundColor = [UIColor greenColor];

然后当我运行代码时,项目上有一个白色背景,虽然我没有触及datepicker设置上的任何东西。 (见下图)。

enter image description here

我还看到一些帖子说使用ios 7的datepicker上有一个bug。这是真的吗?

4 个答案:

答案 0 :(得分:1)

我对该应用的iPad版本有同样的错误。不知何故,iPhone版本运行良好。我找到了一种解决方法,可以从UIDatePicker中删除白色背景。


观察

  • 白色背景显示的是第一个日期及其下方的日期。
  • 在更改日期(滚动)时,白色背景会消失,不会再来。

修复

要解决此问题,在视图中显示UIDatePicker之前,我手动更改日期一次,然后重新设置日期,如下所示:

[datePicker setDate:[NSDate dateWithTimeIntervalSince1970:NSTimeIntervalSince1970]];
[datePicker setDate:[NSDate date]];
//Now add the datepicker to the view that you want to.

这似乎为我删除了烦人的白色背景。告诉我它是否适合你!

答案 1 :(得分:1)

好的,我发现了一个有点棘手的解决方案,但解决方案:)所以它与iPad(iOS 7)的UITableViewCell背景颜色相同。解决方案:

- (void)makeAllSubviewsBackroundClear:(UIView*)view
{
    for (UIView *subview in view.subviews)
    {
        if ([subview isKindOfClass:[UITableViewCell class]])
        {
            subview.backgroundColor = [UIColor clearColor];
        }

        [self makeAllSubviewsBackroundClear:subview];
    }
}

-(void)layoutSubviews
{
    [self makeAllSubviewsBackroundClear:self.datePicker];

    [super layoutSubviews];
}

解决方案是设置" cell"在我们的情况下,您需要的背景颜色 - 颜色清晰,当细胞出现时#34;。也许这不是一个理想的解决方案,但我希望它会有所帮助。

P.S。:您可以在某种程度上重构此代码,以便在每个布局子视图中都不会调用此方法,但在特殊情况下。

答案 2 :(得分:0)

不确定为什么Apple会这样做,但尝试将所有子视图设置为清除颜色,然后将背景设置为绿色

for (UIView *view in myDatePicker.subviews) {
    view.backgroundColor = [UIColor clearColor];
}
myDatePicker.backgroundColor = [UIColor greenColor];

答案 3 :(得分:0)

我也有这个错误。它似乎是一个iOS错误,iOS 7.1无法修复它 这是与此相同的错误:post