Infnitely looping animations triggered by keyboardWillShow/Hide notifications
| Originator: | jaredsinclair.rn | ||
| Number: | rdar://14862042 | Date Originated: | August 28, 2013 |
| Status: | Open | Resolved: | |
| Product: | iPhone SDK | Product Version: | 7.0 Beta 6 |
| Classification: | Serious Bug | Reproducible: | Always |
28-Aug-2013 06:45 PM Jared Sinclair: Summary: UIView animation blocks triggered by UIKeyboardWillShow or Hide notifications get stuck in an infinitely-repeating animation loop. Steps to Reproduce: 1. Build and run the sample project on an iOS 7 beta 6 device or simulator (the bug is more reliably reproduced on an actual test device for some reason). 2. Tap the UITextView to show the keyboard and update the user interface layout. 3. Tap the table view to dismiss the keyboard and revert the user interface layout to the default state. 4. Observe the bizarre animation loop. Expected Results: The user interface animation should only run once. Actual Results: The animation repeats infinitely. Regression: I have ensured that I am using the proper UIViewAnimationOptions, and am overriding the inherited options as well. This same code runs normally on iOS 6.1. Here is a link to a video of the behavior in case you are not sure what I am referring to: Video: http://cl.ly/R4hd Notes: I will attach an Xcode project in a moment. In the meantime, here is a direct link to a zipped version of the project: Project: http://cl.ly/R519
Comments
Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!
Indeed
I just discovered that this morning myself. Glad to know I'm not crazy.
Also reported this issue
I've also reported this issue: (14721436). The issue is that an invalid value (7) is returned for the animationCurve in the notification's userInfo struct. I've had to work around it by defaulting to another value.