3

有一个我想让它透明的视图,它可以在模拟器上运行,但由于某种原因不在我的设备上。我不知道为什么会这样。我的代码如下所示:

- (void)viewDidLoad

    [...]
    UIView *transparentBackgroundView = [[UIView alloc] initWithFrame:self.view.frame];

    // Doesn't work on my device. 
    transparentFlipBackgroundView.backgroundColor = [UIColor clearColor];

    // I have also tried. 
    // transparentFlipBackgroundView.alpha = 0;
    // transparentFlipBackgroundView.opaque = YES
    // transparentFlipBackgroundView.layer.backgroundColor = [UIColor clearColor].CGColor;

    // I later add the view to an array...
    self.pageViews = [[NSMutableArray alloc] initWithObjects:transparentFlipBackgroundView, lastPage, nil];  
    [...]
}

任何想法为什么会发生这种情况,我应该如何使 UIView 透明?

4

4 回答 4

2

尝试改变

transparentFlipBackgroundView.backgroundColor = [UIColor clearColor];

transparentFlipBackgroundView.backgroundColor = 
                                      [UIColor colorWithRed:0 green:0 blue:0 alpha:0];
于 2012-08-10T11:16:04.647 回答
1

你有其他设备可以试用吗?如果它可以在模拟器上运行,那么它肯定也可以在您的设备上运行吗?如果您愿意,我不介意尝试我的其中一种设备。

于 2012-08-09T15:59:26.710 回答
1

我在使用 XCode5 和 iOS7 SDK 时遇到了这个问题。我发现我在辅助功能设置(设置/常规/辅助功能)下打开了“增加对比度”。这导致导航栏的透明度低于关闭此设置时的透明度。

将其关闭,现在我可以看到栏杆后面的一些透明度。它仍然不如模拟器,但现在更好。

于 2013-09-19T22:55:52.757 回答
0

相当hacky的解决方案,但我通过使用CGRectZero制作视图来修复它。

于 2012-08-10T11:13:12.377 回答