gpt4 book ai didi

ios - CATiledLayer 和视网膜显示

转载 作者:行者123 更新时间:2023-11-29 13:38:53 26 4
gpt4 key购买 nike

有没有人有任何技巧可以提高 CATiledLayer 在视网膜显示器上的性能?

这篇文章: CATiledLayer in iPad retina simulator yields poor performance

暗示模拟器存在问题,但我注意到实际设备 的性能也很差。这是一个非常明显的问题,因为它会更快地在视网膜显示屏上加载更大的图 block 。我唯一能做的就是重新处理具有更多细节层次的平铺图像。

我做了一个小把戏:

    CGFloat scale = CGContextGetCTM(context).a / self.contentScaleFactor;

在计算规模时,但这似乎不足以应对糟糕的表现。

最佳答案

在我的平铺 View 上:

- (id)initWithImageName:(NSString *)name size:(CGSize)size
{

if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)] == YES && [[UIScreen mainScreen] scale] == 2.00) {

size = CGSizeMake(size.width*2, size.height*2);

}

if ((self = [super initWithFrame:CGRectMake(0, 0, size.width, size.height)])) {

CATiledLayer *tiledLayer = (CATiledLayer *)[self layer];

tiledLayer.levelsOfDetail = 4;
if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)] == YES && [[UIScreen mainScreen] scale] == 2.00) {

tiledLayer.tileSize = CGSizeMake(512, 512);
}

}

return self;
}

这让 iPad 3 对我来说就像 iPad 2 一样工作。如果您正在做任何其他事情,例如覆盖数据等,那么您可能需要做更多的争论。实际上,这只会使您的内容和图 block 的大小加倍,从而抵消视网膜显示的影响。

您可能还想更改视网膜的最大和最小缩放比例

关于ios - CATiledLayer 和视网膜显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9743593/

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