我讨厌发布此内容,但我在我正在处理的iPhone应用中看到了不需要的动画。我以前从未在我的应用程序或任何其他应用程序中看到过此。
此应用仅适用于iOS 4.2和iPhone。甚至在iPhone4上也发生了奇怪的现象。
示例:
当相关应用程序启动UIAlertView
时,它会“从顶部或左上角飞来。”
当任何UITableView
滚动时,新的(标准)单元格数据“首次进入视图时会从单元格左侧扩展”,从而填充。
当UITextField
输入文字时,输入速度很慢,您可以看到光标滑到新字母的右侧。如果UITextField
中有“清除”按钮,则会首先从左侧滑动到UITextField
。
当UIPickerView
滚动时,滚动到新显示的行会从左上角“悬挂”新行数据。
整体行为类似于旧的旧Apple II + basic,你可以设置“speed = 20”并“慢下”电脑。
我所知道的: 这种情况发生在多部手机(4和3G)上。它不会发生在我的其他应用程序中。一般来说,它不会发生在其他应用中。它似乎在整个应用程序中保持一致。这不是一个小项目,所以我不确定它何时开始,但它并没有从这种行为开始。没有与上述项目相关联的动画。问题似乎影响了应用程序中的所有内容。
甚至有一个独立的代码库应用程序的例子,当集成到这个prpoblem应用程序时,显示相同的问题。
有没有人见过这种行为?我不是唯一的开发人员,所以有其他人可以设置的可能设置导致这个吗?
答案 0 :(得分:10)
听起来你正在离开UIView动画未完成。如果您开始动画但从未完成动画,那么在该点之后的所有UIView操作都将被动画化,就像您描述的那样。奇怪的部分是我认为UIKit会为你终止它们(并记录一条消息)如果控件传回带有打开动画块的runloop。要么不再发生,要么你不断开始新的动画块。
您应该查看+[UIView beginAnimations:context:]
所有实例的代码,并确保它们均由相应的+[UIView commitAnimations]
进行平衡。