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