On 19 Aug 2012, at 00:18, Matt Neuburg <m...@tidbits.com> wrote: > On Mon, 06 Aug 2012 00:11:39 +0700, "Gerriet M. Denkmann" > <gerr...@mdenkmann.de> said: >> I use this code (iOS 5.1): >> CGAffineTransform m = { c, +s, -s, c, 0, 0 }; // rotation, s = >> sin(angle), c = cos(angle) >> CALayer *layer = self.view.layer; // view is UIView, self is >> subclass of UIViewController >> [ CATransaction begin]; >> [ CATransaction setAnimationDuration: 9 ]; >> [ layer setAffineTransform: m ]; >> [ CATransaction commit]; >> The view rotates ok, but does it instantly, instead of taking 9 seconds. >> >> What am I doing wrong? > > You are attempting to use implicit property animation (setAffineTransform:) > on a view's primary layer. You can't do that; the property will change, but > it won't animate. To get animation on that particular layer, you must use > explicit animation (CABasicAnimation) or view animation. Explained here: > > http://www.apeth.com/iOSBook/ch17.html
I am now using view animation (as explained in your book chapter 17 "Block-Based View Animation"). [ UIView animateWithDuration: duration animations: ^ { self.view.transform = newTransform; } ]; CABasicAnimation works as well, but requires more code. Kind regards, Gerriet. _______________________________________________ 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: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com