gpt4 book ai didi

iphone - 在 iPhone 4 上的 CATiledLayer 中绘制时出现模糊像素跨接

转载 作者:行者123 更新时间:2023-12-03 21:21:54 25 4
gpt4 key购买 nike

我使用以下代码在 CATiledLayer 中绘制一条线:

- (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx {
CGContextMoveToPoint(ctx, 130, 100.5);
CGContextAddLineToPoint(ctx, 160, 100.5);
CGContextSetRGBStrokeColor(ctx, 1, 0, 0, 1);
CGContextSetRGBFillColor(ctx, 1, 0, 0, 1);
CGContextDrawPath(ctx, kCGPathStroke);
}

我得到的是这条 4px 模糊线:

http://img837.imageshack.us/img837/5002/fuzzyline.png

如果我将 CATiledLayer 更改为 CALayer,则线条很清晰,宽度为 2px,正如预期的那样。我仅在 iPhone 4 上出现此行为,在 3GS 上,CALayer 和 CATiledLayer 上的线条都很尖锐。当然,在 3GS 上,线条是 1px 粗。

知道如何克服这种行为。

最佳答案

我找到了:使用contentsScale == 1.0 创建CATiledLayer。如果将其附加到 contentScaleFactor == 2.0 的 View ,图层会放大,这就是我的绘图的困惑之处。

解决方案:在附加 View 之前设置layer.contentsScale = 2.0。

Apple 表示,创建的任何未附加到 View 的图层的 contentScale == 1.0,但在我的测试中,创建的 CALayer 的 contentScale == 2。

关于iphone - 在 iPhone 4 上的 CATiledLayer 中绘制时出现模糊像素跨接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3872289/

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