Gui*_*ume 2 scale calayer uiview drawrect ios
假设您有一个UIView或CALayer自己绘制(矢量)绘图,并且希望它保持任何大小的清晰,即使缩放视图或图层时也是如此。随transform属性缩放时如何重绘?是强制bounds更改而不使用的唯一方法transform吗?还是setNeedsDisplay每个步骤都打电话?
为什么UIImageView似乎表现出不同的行为(即,即使使用缩放transform并且其bounds不变,它似乎总是适当地缩放其源图像)?是因为这是直接设置content基础属性的唯一情况CALayer吗?
如果needsDisplayOnBoundsChange在CALayer你的情况是不够的,你也可以继承CALayer和实现+ (BOOL)needsDisplayForKey:(NSString *)key方法。例:
+ (BOOL)needsDisplayForKey:(NSString *)key {
if ([key isEqualToString:@"transform"]) {
return YES;
}
return [super needsDisplayForKey:key];
}
Run Code Online (Sandbox Code Playgroud)
现在,每次transform属性更改时,都应重绘您的图层。如果您的绘图较大,则可能会导致动画中的性能问题。