在iPhone应用程序中发生奇怪的不需要的动画

dre*_*ful 6 iphone animation core-animation objective-c

我讨厌发布这个,但我在我正在研究的iPhone应用程序中看到不需要的动画.我以前从未在我的应用程序或任何其他应用程序中看到过这个.

此应用程序适用于iOS 4.2和仅适用于iPhone.甚至在iPhone4上也发生了奇怪的事情.

例子:

  • 当有问题的应用程序启动时UIAlertView,它会"从顶部或左上角飞入".

  • 当任何UITableView滚动时,新的(标准)单元格数据"首次进入视图时从单元格的左侧扩展"并因此填充.

  • UITextField输入文本时,输入速度很慢,您可以看到光标滑到新字母的右侧.如果其中有一个"清除"按钮UITextField,它将从左侧滑动到UITextField第一个进入.

  • 当a UIPickerView滚动时,滚动到新显示的行将从左上角"飞行"新行数据.

整体行为类似于旧的旧Apple II + basic,你可以设置"speed = 20"并"减慢"计算机速度.

我所知道的:这种情况发生在多部手机(4和3G)上.它不会发生在我的其他应用程序中.一般来说,它不会发生在其他应用中.它似乎在整个应用程序中保持一致.这不是一个小项目,所以我不确定它何时开始,但它并没有从这种行为开始.没有与上述项目相关联的动画.问题似乎影响了应用程序中的所有内容.

甚至有一个独立的代码库应用程序的例子,当集成到这个prpoblem应用程序时,显示相同的问题.

有没有人见过这样的行为?我不是唯一的开发人员,所以是否有其他人设置的可能设置导致此问题?

Lil*_*ard 10

听起来你正在离开UIView动画未完成.如果您开始动画但从未完成动画,那么在该点之后的所有UIView操作都将被动画化,就像您描述的那样.奇怪的部分是我认为UIKit会为你终止它们(并记录一条消息)如果控件传回带有打开动画块的runloop.要么不再发生,要么你不断开始新的动画块.

您应该查看所有实例的代码,+[UIView beginAnimations:context:]并确保它们全部由相应的平衡+[UIView commitAnimations].

  • @dredful:我发现在编写内部代码之前,总是在开始这些部分时终止这些部分是有帮助的. (2认同)