有一个我想透明的视图,它在模拟器上工作,但由于某种原因不在我的设备上。我不知道为什么会这样。我的代码如下所示:
- (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透明?
答案 0 :(得分:2)
尝试更改
transparentFlipBackgroundView.backgroundColor = [UIColor clearColor];
到
transparentFlipBackgroundView.backgroundColor =
[UIColor colorWithRed:0 green:0 blue:0 alpha:0];
答案 1 :(得分:1)
你有其他设备可以尝试吗?如果它在模拟器上运行,它肯定也适用于您的设备吗?如果您愿意,我不介意尝试使用我的某个设备。
答案 2 :(得分:1)
我遇到了XCode5和iOS7 SDK的这个问题。我发现我在辅助功能设置(设置/常规/辅助功能)下打开了“增加对比度”。这导致导航栏的透明度低于此设置关闭时的透明度。
把它关掉,现在我可以看到酒吧后面有一些透明度。它仍然没有模拟器那么多,但它现在好多了。
答案 3 :(得分:0)
非常hacky解决方案,但我通过使用CGRectZero创建视图来修复它。