gpt4 book ai didi

iphone - 具有透明背景的 UIControl

转载 作者:可可西里 更新时间:2023-11-01 05:14:00 25 4
gpt4 key购买 nike

我有一个 UIControl 子类。我使用以下代码更改它的背景颜色:

- (void)drawRect:(CGRect)rect
{
[self.backgroundColor setFill];
UIRectFill([self bounds]);
}

这适用于除 [UIColor clearColor] 之外的所有颜色。如何使 UIControl 的背景透明?

最佳答案

您应该在 initWithFrame 或/和 initWithCoder 中设置清晰的背景色

- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code

self.backgroundColor = [UIColor clearColor];
}
return self;
}

- (id)initWithCoder:(NSCoder *)aDecoder
{
self = [super initWithCoder:aDecoder];
if (self)
{
self.backgroundColor = [UIColor clearColor];
}
return self;
}

您的控件的默认背景将是透明的,然后您可以根据需要在 drawRect 中填充任何背景颜色。

它在您的示例中不起作用的原因是该控件具有默认的黑色背景,该背景设置在 drawRect 之外的某处(可能在父 UIView init 中)。当您设置彩色背景时,它会覆盖黑色背景。当您设置一个清晰的背景时,您会看到默认的黑色背景。

关于iphone - 具有透明背景的 UIControl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14254163/

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