gpt4 book ai didi

ios - 在视网膜屏幕上对CALayer的0.5点(1像素)边框进行抗锯齿时闪烁

转载 作者:行者123 更新时间:2023-12-01 16:46:08 27 4
gpt4 key购买 nike

环顾Stackoverflow,您会发现一些代码,可让您对CALayers的边界进行抗锯齿,类似于:

layer.borderColor = [UIColor whiteColor].CGColor;
CGFloat borderWidth = 1;
layer.borderWidth = borderWidth;
layer.allowsEdgeAntialiasing = YES;
layer.edgeAntialiasingMask = kCALayerLeftEdge | kCALayerRightEdge + kCALayerTopEdge | kCALayerBottomEdge;
layer.needsDisplayOnBoundsChange = NO;
layer.rasterizationScale = [UIScreen mainScreen].scale;

但是对于视网膜显示器,最好绘制1像素宽的边框。所以我改变了边界:
CGFloat borderWidth = 1 / [[UIScreen mainScreen] scale];

唯一的问题是,之后用户滚动时可以看到边缘“闪烁”。绝对比不使用抗锯齿效果更好,但不如我所希望的那样平滑。有没有人发现层不闪烁?

最佳答案

我知道不是最近,但是也许contentsScale可以解决问题。
在Swift中查看全部内容

    let layer = view.layer
layer.borderColor = UIColor.white.CGColor
let borderWidth = CGFloat(1.0)
layer.borderWidth = borderWidth
layer.allowsEdgeAntialiasing = true
layer.edgeAntialiasingMask = [.LayerBottomEdge, .LayerTopEdge, .LayerLeftEdge, .LayerRightEdge]
layer.needsDisplayOnBoundsChange = false
layer.rasterizationScale = UIScreen.mainScreen().scale
layer.contentsScale = UIScreen.mainScreen().scale

关于ios - 在视网膜屏幕上对CALayer的0.5点(1像素)边框进行抗锯齿时闪烁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19842615/

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