UIDatePicker有在项目的白色背景

时间:2013-12-23 17:07:30

标签: ios ios7 uidatepicker

我在使用UIDatePicker的iOS 7上遇到此问题。当我在任何视图控制器中显示UIDatePicker时,它会在当前日期获得白色背景,如果您滚动小部件,它将消失。我已经测试了一个空的新项目,结果相同(只是新项目,将故事板颜色设置为白色以外的颜色,并将任何UIDatePicker拖到场景中并尝试这样)。 有人知道为什么会这样吗?这个控件应该是透明的,没有这个白色标签。 enter image description here

4 个答案:

答案 0 :(得分:5)

我对该应用的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 :(得分:0)

我自己有这个问题。要解决此问题,您需要使用UIView对象并将其放在您希望UIDatePicker所在的位置。将UIView的背景颜色设置为白色,并确保选中不透明。

接下来将UIDatePicker放在UIView内并连接任何需要与UIDatePicker连接的插座或任何内容,从这里运行您的应用程序,它应该可以正常工作。

答案 2 :(得分:0)

好的,我发现了一个有点棘手的解决方案,但解决方案:)所以它与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。:您可以在某种程度上重构此代码,以便在每个布局子视图中都不会调用此方法,但在特殊情况下。

答案 3 :(得分:0)

我遇到了有关错误背景的类似问题,并通过解决自动布局约束解决了这个问题。我假设当UIDatePicker的约束与其内在内容大小冲突时,UIDatePicker不喜欢它。尝试以您的选择器可以将其自身调整为其内容的方式更新约束。