Hello, during the recent discussion "CALayer -drawInContext and GCD" it came up that you should not use [CATransation flush] and the argument made a point that it wasn't necessary and should be avoided because of negative consequences. I'm a little confused now as it seems -flush does help me achieve something that I don't know how to do otherwise.
I have delegate-drawn layers (on the main thread) whose content I want to change without animation, I don't want to a change transition of any kind in some situations. Up until now I'm using this: [CATransaction flush]; [CATransaction begin]; [CATransaction setValue:(id)kCFBooleanTrue forKey:kCATransactionDisableActions]; [self applyLayerFrame]; //changes position of the layer, layer possibly bounds too [layer setNeedsDisplay]; [CATransaction commit]; Which works exactly as planed, both frame and content change instantly. If I remove the call to -flush the frame changes without animation but the content change is animated. Given the argument I surely must be doing something wrong. No matter where I put the [layer setNeedsDisplay] call, the content change is always animated. It only works like I want it if I use flush AND put -setNeedsDisplay where it is now. So, what's the correct method of updating a delegate-drawn layer's content without animating the change? Regards Markus PS: The GeekGameBoard demo project uses flush a lot, I think I got the idea from there. -- __________________________________________ Markus Spoettl _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com