gpt4 book ai didi

ios - 在 CALayer 中放置一个全尺寸图像以适合整个屏幕

转载 作者:行者123 更新时间:2023-11-29 12:35:10 24 4
gpt4 key购买 nike

我有一张图片 (png),它必须填满我的应用程序的整个屏幕。我正在使用 CALayers 并以编程方式完成所有事情,但这听起来仍然是微不足道的事情,但我无法让它工作。我有两个版本的图像,视网膜版本 (2048px x 1536px) 和非视网膜版本 1024px x 768px)。图片在资源目录中列为通用图片

我认为代码很简单:

// CREATE FULL SCREEN CALAYER  
CALayer *myLayer = [[CALayer alloc] init];
[myLayer setBounds:CGRectMake(0, 0, bounds.size.width, bounds.size.height)];
[myLayer setPosition:CGPointMake(bounds.size.width/2, bounds.size.height/2)];
[self.view.layer addSublayer:myLayer];

// LOAD THE IMAGE INTO THE LAYER —— AM EXPECTING IT TO FILL THE LAYER
UIImage *layerImage = [UIImage imageNamed:@"infoScreen"];
CGImageRef image = [layerImage CGImage];
[myLayer setContents:(__bridge id)image];
[myLayer setContentsGravity:kCAGravityCenter]; /* IT WORKS FINE IF I USE setContentsGravity:kCAGravityResizeAspectFill */

此代码在非 iPad 视网膜上运行良好。然而在 Retina iPad 上,图像总是以实际大小的两倍加载(因此它看起来放大了)。我正在使用模拟器和 iOS 8。我做错了什么?

最佳答案

开始你的图像处理func UIGraphicsBeginImageContextWithOptions(大小:CGSize,不透明:Bool,比例:CGFloat)

上述函数中的最后一个参数决定了图形的缩放比例。你可以设置通过检索主屏幕的比例属性来获取此值。很快我会这样做:var 屏幕 = UIScreen.mainScreen()var scale = screen.scale

希望对您有所帮助。

编辑:- 快速执行此操作的代码,您可以修改它以满足您的需要。

    UIGraphicsBeginImageContextWithOptions(rect.size, true, 0.0)
var ctx : CGContextRef = UIGraphicsGetCurrentContext()
<UIImage>.drawInRect(rect)

关于ios - 在 CALayer 中放置一个全尺寸图像以适合整个屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26564694/

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