我目前正在开发一个带有NavigationController的MonoTouch应用程序,一个带有一些ImageView的根视图,以及一些标准和自定义/子类化的TableViews和TableViewCells。一些元素位于xib文件中,其他元素仅代码。
导航和表格内容本身运行正常。但是,我遭受了一些奇怪的“动画”效果......我正尽力将它们描述得尽可能好。
1) 在导航堆栈上来回导航时,每次出现视图时,看起来该视图的项目都会重新布局。当从子视图导航回到根视图时,它的ImageViews会从它们不应该的位置开始并滑动到正确的位置。
2) TableViewCells在可见区域出现时从上到下“展开/显示”其内容,即使在没有动画的情况下重新加载时也是如此:
TableView.ReloadSections(new NSIndexSet(1), UITableViewRowAnimation.None);
向下滚动表格,每个单元格一旦显示就会分别触发它自己的“展开”动画。
3) TableViews的滚动条从视图滑动到视图。
例如,当点击一个在堆栈上推送另一个TableView的单元格时:
- 父表从右侧滑入左侧/子表滑动(应该如此)
- 当子表完全出现时,它的可见单元格从顶部(表格)“展开”到底部
- 最后,当这个奇怪的单元格展开完成后,滚动条从左侧(父表“是”)滑入其右侧的正确位置。所以看起来它正在重用父表的滚动条。
4) 显示网络活动指示符时......
UIApplication.SharedApplication.NetworkActivityIndicatorVisible = true;
...它出现在网络运营商名称的位置(状态栏上最左侧)并滑动到其预定位置(信号强度指示符旁边)。 “你被定位”箭头也是如此。启动LocationManager时,箭头会显示在运营商名称上并向右滑动。
所有这些动画和幻灯片动作都非常刺激和分散注意力。 我在AppStore上查看了其他一些MonoTouch应用程序,没有人受此影响。
我的申请做错了什么? 我非常感谢有关可能导致这种奇怪行为的提示以及如何禁用它的提示。
答案 0 :(得分:2)
我今天就有这个 - 我在我的应用程序中使用
执行了一些动画UIView.BeginAnimations("AnimationName");
UIView.SetAnimationDuration(0.5f);
// and so on...
事实证明我实际上没有提交我的动画(使用:
UIView.CommitAnimations();
确保我调用CommitAnimations()
摆脱了这种行为!