Re: iPhone animation puzzle
Re: iPhone animation puzzle
- Subject: Re: iPhone animation puzzle
- From: Matt Neuburg <email@hidden>
- Date: Wed, 23 Mar 2011 16:29:56 -0700
Nothing was "reversed", unfortunately. Block-based animation was introduced in iOS 4.0, and user interaction has always been off by default during one, so if you wanted user interaction you always had to use UIViewAnimationOptionAllowUserInteraction - and you still do.
Apple did seem to regret this, and signaled an intent to change this policy; but they have never done so, and indeed it is hard to see how they could do it coherently.
(Of course, Apple can reverse anything at any time, like when they reversed the meaning of the y-component of a shadow offset without warning and screwed up everyone's drawing starting in 3.2.)
m.
On Sun, 20 Mar 2011 14:13:25 -0400, Jeff Kelley <email@hidden> said:
>If I recall correctly, in iOS 4.0, this was reversed, but the next update changed the behavior to what we have now.
>
>On Mar 20, 2011, at 1:25 PM, WT wrote:
>
>> I seem to recall that one of the WWDC 2010 instructional videos - available for free from Apple's developer site - mentions that the block version has UIViewAnimationOptionAllowUserInteraction off by default.
>>
>> That being said, have you filed a document enhancement request?
>>
>> WT
>>
>> On Mar 20, 2011, at 1:59 PM, David Rowland wrote:
>>
>>> That did it.
>>>
>>> The "View Programmming Guide for iOS", discusses both methods and implies that their code samples are equivalent. They don't say, or I didn't see, that the option you mention is on by default for the begin/commit style and off for the newer block style.
>>>
>>> thanks,
>>>
>>> David
>>>
>>>
>>>
>>> On Mar 19, 2011, at 5:08 PM, Roland King wrote:
>>>
>>>> UIViewAnimationOptionAllowUserInteraction ?
>>>>
>>>>
>>>>
>>>> On Mar 20, 2011, at 5:42, David Rowland <email@hidden> wrote:
>>>>
>>>>> This works. It fades the label to invisibility.
>>>>>
>>>>> label.alpha = 1.0;
>>>>> [UIView beginAnimations:nil context:nil];
>>>>> [UIView setAnimationDuration:2.5];
>>>>> label.alpha = 0;
>>>>> [UIView commitAnimations];
>>>>>
>>>>>
>>>>> and so does this,
>>>>>
>>>>> label.alpha = 1.0;
>>>>> [UIView animateWithDuration:2.5 animations:^{label.alpha = 0.0;} ];
>>>>>
>>>>>
>>>>> The documentation says the latter is now preferred and does the same thing as the former. In particular, both will
>>>>> start a separate thread for the animation.
>>>>>
>>>>> My problem is that the second method seems to block the main thread. While it is acting I cannot use any of the controls on the screen. The first method lets me do what I wish as it proceeds.
>>>>>
>>>>>
>>>>> Anyone have advice?
>>>>>
>>>>> thanks,
>>>>>
>>>>> David
>
>Jeff Kelley
>email@hidden
>
>
--
matt neuburg, phd = email@hidden, <http://www.apeth.net/matt/>
A fool + a tool + an autorelease pool = cool!
Programming iOS 4!
http://www.apeth.net/matt/default.html#iosbook_______________________________________________
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