gpt4 book ai didi

ios - 在缩放/变换时强制重绘 UIView 或 CALayer

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:17:57 25 4
gpt4 key购买 nike

假设您有一个UIView 或一个CALayer 可以进行自己的(矢量)绘图,并且您希望它在任何尺寸下都保持清晰,即使在缩放 View 时也是如此或层。当使用 transform 属性缩放时,如何让它重绘?强制更改 bounds 而不是使用 transform 的唯一方法是什么?或者在每一步都调用 setNeedsDisplay

为什么 UIImageView 的行为似乎有所不同(即它似乎总是适本地缩放其源图像,即使使用 transformbounds 不变)?是因为它是唯一直接设置底层 CALayercontent 属性的情况吗?

最佳答案

如果 CALayer 上的 needsDisplayOnBoundsChange 在您的情况下还不够,您可以子类化 CALayer 并实现 + (BOOL)需要DisplayForKey:(NSString *)key 方法。示例:

+ (BOOL)needsDisplayForKey:(NSString *)key {
if ([key isEqualToString:@"transform"]) {
return YES;
}
return [super needsDisplayForKey:key];
}

现在,每次 transform 属性更改时,您的图层都应该重新绘制。如果您的绘图范围很广,这可能会导致动画出现性能问题。

关于ios - 在缩放/变换时强制重绘 UIView 或 CALayer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16670829/

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