gpt4 book ai didi

objective-c - CALayer 不显示

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

所以这是我第一次尝试使用 CALayer。构建成功并且没有报告错误,所以我认为我一定是在做一些明显错误的事情。但是图层根本不显示。

- (void)viewDidLoad
{

// Get Reliant Magenta in amazingly verbose manner
CGColorSpaceRef rgbaColorSpace = CGColorSpaceCreateDeviceRGB();
CGFloat reliantMagentaValues[4] = {(208/255),(27/255),(124/255),0.3f};
CGColorRef reliantMagenta = CGColorCreate(rgbaColorSpace, reliantMagentaValues);

CALayer *reliantCanvasLayer = [CALayer layer];

reliantCanvasLayer.backgroundColor = reliantMagenta;
reliantCanvasLayer.frame = CGRectMake(0, 0, 640, 960);

[super viewDidLoad];

[[[self view] layer] addSublayer:reliantCanvasLayer];

CGColorRelease(reliantMagenta);

}

我得到的不是整页的洋红色,而是灰色的空白 View 。我怎么会搞砸这么简单的事情?


更新

- (void)viewDidLoad
{

[super viewDidLoad];

// Get Reliant Magenta in amazingly verbose manner
CGColorSpaceRef rgbaColorSpace = CGColorSpaceCreateDeviceRGB();
CGFloat reliantMagentaValues[4] = {(208/255),(27/255),(124/255),0.3f};
CGColorRef reliantMagenta = CGColorCreate(rgbaColorSpace, reliantMagentaValues);

[[self view] layer].backgroundColor = reliantMagenta;

CGColorRelease(reliantMagenta);

}

同样的问题,但是 View 现在是黑色的并且不显示 Storyboard中添加的元素

最佳答案

一个问题(可能是唯一的问题)是您使用全零分量创建颜色。当您说 208/255 时,编译器使用整数执行除法并丢弃余数,因此 208/255 为 0。您需要用 float 除法:208.0f/255.0f

使用 UIColor 而不是自己设置 CGColorSpaceCGColor 也容易得多。试试这个:

- (void)viewDidLoad {
[super viewDidLoad];

UIColor *reliantMagenta = [UIColor colorWithRed:208.0f / 255.0f
green:27.0f / 255.0f blue:124.0f / 255.0f alpha:0.3f];

CALayer *magentaLayer = [CALayer layer];
magentaLayer.frame = CGRectMake(0, 0, 640, 960);
magentaLayer.backgroundColor = reliantMagenta.CGColor;

[self.view.layer addSublayer:magentaLayer];
}

关于objective-c - CALayer 不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12656861/

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