ios - Force redraw of a UIView or CALayer on scale/transform -
say have uiview
or calayer
own (vector) drawing, , want remain crisp @ size, when scaling view or layer. how can make redraw when scaled transform
property? way force bounds
change instead of using transform
? or call setneedsdisplay
@ every step?
why uiimageview
seem behave differently (i.e. seems scale source image appropriately, when scaled transform
, bounds
doesn't change)? because it's case content
property of underlying calayer
set directly?
if needsdisplayonboundschange
on calayer
not enough in case, can subclass calayer
, implement + (bool)needsdisplayforkey:(nsstring *)key
method. example:
+ (bool)needsdisplayforkey:(nsstring *)key { if ([key isequaltostring:@"transform"]) { return yes; } return [super needsdisplayforkey:key]; }
now layer should redrawn everytime transform
property changes. might cause performance issues in animations if drawing extensive.
Comments
Post a Comment