gpt4 book ai didi

ios - 无法让 CALayer 在 UIView 中显示

转载 作者:行者123 更新时间:2023-11-28 22:42:07 25 4
gpt4 key购买 nike

我有一个简单的单 View 应用程序,但出于某种原因,我无法让 CALayer 显示在应用程序的 UIView 中。 View 的背景颜色正确,但 CALayer 中的图像不可见。我已经在调试器中逐步执行了代码,并且我确定图像正在正确加载。如果我不使用 CALayer 而使用 UIImageView,一切都会如您所愿。

这是我的 UIViewController 子类的代码。你看到我做错了什么了吗?

- (void)viewDidLoad
{
[super viewDidLoad];

self.view.backgroundColor = [UIColor darkGrayColor];

CALayer* cardLayer = [self layerForCard];

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

- (CALayer *)layerForCard
{
UIImage* cardImage = [UIImage imageNamed:@"card1.jpg"];
CGSize cardSize = cardImage.size;
CGRect cardRect = CGRectMake(.0, .0, cardSize.width, cardSize.height);

// Container Layer
CALayer *containerLayer = [CALayer layer];
containerLayer.bounds = cardRect;
containerLayer.opacity = 1.0;

// Image Layer
CALayer *imageLayer = [CALayer layer];
imageLayer.bounds = cardRect;
imageLayer.contentsGravity = kCAGravityResizeAspectFill;
imageLayer.contents = CFBridgingRelease(cardImage.CGImage);

[containerLayer addSublayer:imageLayer];

return containerLayer;
}

最佳答案

要么设置正确的 anchor ,要么使用

containerLayer.frame = cardRect;
..
imageLayer.frame = cardRect;

代替

containerLayer.bounds = cardRect;
..
imageLayer.bounds = cardRect;

关于ios - 无法让 CALayer 在 UIView 中显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14235733/

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