Re: [iOS] Block animation kills performance
Re: [iOS] Block animation kills performance
- Subject: Re: [iOS] Block animation kills performance
- From: Rick Mann <email@hidden>
- Date: Mon, 01 Aug 2011 10:33:59 -0700
Thank you, Roland, for that thorough explanation. Now I understand what's going on and why. I will write a bug, if only to get the docs improved.
--
Rick
On Aug 1, 2011, at 3:38 , Roland King wrote:
>
> On Aug 1, 2011, at 8:08 AM, Rick Mann wrote:
>
>>
>> On Jul 31, 2011, at 17:04 , Roland King wrote:
>>
>>> On Aug 1, 2011, at 7:32, Rick Mann <email@hidden> wrote:
>>>
>>>>
>>>> On Jul 31, 2011, at 16:23 , Hunter Hillegas wrote:
>>>>
>>>>> Are you sure you don't need UIViewAnimationOptionAllowUserInteraction and animateWithDuration:delay:options:animations:completion:?
>>>>
>>>> No, I'm not sure :-) I've never worried about that option before, and don't know why it would be different from one approach to the other.
>>>>
>>>> Why do I need it for the block approach and not for the other?
>>>>
>>>> The docs for UIViewAnimationOptionAllowUserInteraction suggest it's only necessary for views that are animating that require user interaction; that is not the case for me. The animating view does not have any user interaction. It's all the other views in my app that fail to respond.
>>>>
>>>> --
>>>> Rick
>>>>
>>>>>
>>>
>>> You need it.
>>
>> Why do I need it? That doesn't seem to be what the docs say.
>
> The docs aren't wonderful on that point I'd agree, you can read 'views' in the description of the flag a variety of different ways and I would suggest requesting a doc change clarifying it. However since that method was introduced as far as I know it's always worked that way and has disabled all user interaction on all views in your application during an animation. So if you want any user interaction when using that method, you need the flag.
>
>>
>> Is it a bug? Why would iOS have a default mode that stops all user interaction if anything is animating?
>
> I don't think it's a bug, it's a choice. Having user interaction disabled when view animations are going on is something I could certainly see as a useful option. Whether it makes sense to have had this as the default option or not is definitely open to debate, and there have been comments suggesting apple might change it, but it would probably be rather hard to do that now so we may well be stuck with it as it is.
>
>>
>
>> And why does it work fine with the older way of doing it?
>
> The older way of doing it didn't have an option for disabling all view interaction so that had to work that way. I don't see anywhere in the documentation which says the new call with default arguments is a drop-in replacement for the old method and Apple chose the default behavior they wanted for the new API point. Again it's debatable what the smartest default would have been, I would have thought that doing the thing closest to what the old method did would be .. but Apple clearly didn't.
>
> You could certainly file it as a bug, be interesting if it came back as 'works as designed' or 'dupe', but I don't quite know how Apple could change this default behavior without breaking a lot of code.
>
>> --
>> Rick
>>
>
_______________________________________________
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