Re: How to (slowly) rotate a view
Re: How to (slowly) rotate a view
- Subject: Re: How to (slowly) rotate a view
- From: "Gerriet M. Denkmann" <email@hidden>
- Date: Mon, 20 Aug 2012 20:46:46 +0700
On 19 Aug 2012, at 00:18, Matt Neuburg <email@hidden> wrote:
> On Mon, 06 Aug 2012 00:11:39 +0700, "Gerriet M. Denkmann" <email@hidden> 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 (email@hidden)
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:
This email sent to email@hidden