gpt4 book ai didi

ios - 使 UIView 前景透明

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:37:40 27 4
gpt4 key购买 nike

我正在修改 IOS 应用程序以允许额外的背景层。所有现有的叠加层都是 UIImageViews,可以很好地处理透明度

现有的背景是主要的UIView。我想将黑色背景更改为 transparent,以放置另一个 View 。它不起作用。最简单的代码不能像我希望的那样工作,如下所示:

# import "TestUIView.h"
@implementation TestUIView

- (void)drawRect:(CGRect)rect {

self.opaque = NO;
[self setBackgroundColor:[UIColor colorWithRed:0 green:0 blue:0 alpha:0]];
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetRGBFillColor(context, 0,0,0,0);
CGContextFillRect(context, rect);
// and here goes my code where I draw to the transparent background
}
@end

执行此操作时,它会生成一个黑色矩形。我已将其背景设置为透明,并用透明填充其前景。我需要做什么才能获得可以在透明背景下绘图的 UIView

(而且我知道我可以更改整个 View 的 alpha,这不是问题。我想要在真正透明的背景上进行不透明绘图)。

更新:它不在 setbackgroundcolor 中,我知道它没有必要,所以不应该在那里,但如果它被注释掉,同样的事情也会发生。我无法在透明背景下绘画;上面的代码显示我什至不能制作一个透明的矩形来绘制。

谢谢

最佳答案

默认情况下,opaque 的值为NO。此外,如果将 alpha 设置为 0,则 View 将对用户完全不可见。如果要具有透明度,则需要具有大于 0 且小于 1 的 alpha 值。

此外,backgroundColor 属性用于设置 View 的颜色,而不是您自己绘制该颜色。

如果你需要改变drawRect中的背景颜色,你必须自己绘制:

self.backgroundColor=yourColorWithSomeAlphaValue;//
[self.backgroundColor setFill];
CGContextFillRect(UIGraphicsGetCurrentContext(), rect);

here: 中提供了更多解释

关于ios - 使 UIView 前景透明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34179931/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com