我有一个名为DoRotate()的虚函数,可以旋转子视图的动画。非常简单......它是从一个timer事件触发的,并且总是在主线程上调用。
这就像魅力......
现在,我对整个视图进行子类化,并创建另一个尝试执行相同操作的视图。它显示为主视图的子视图(全屏)...现在,UIView.Animate()是一个No-op ..它根本不执行块内的代码。它实际上是在另一个视图中调用的完全相同的函数...它试图动画子视图(原始视图的子子视图......
但是就像操作系统只是说“太糟糕了,太伤心了,我们不再工作了......” - 这是操作系统的典型特征,但这是另一个话题......
最初,我试图让这个视图从基本视图翻转到另一个视图,但显然,没有导航控制器它将无法工作,如果你有一个,那么我创建的弹出菜单将不再弹出......
UIView.Animate (tm, 0, UIViewAnimationOptions.CurveLinear, () =>
{
MapRotating = true;
_DoRotate ();
},
() => {
MapRotating = false;});
}
MapRotating = true;永远不会被调用..我已经把它放在动画调用之前,但是如果动画失败了它就再也没有尝试过......这样一来,它就会永远失败......
_DoRotate计算旋转角度并旋转它(设置变换)......
是否有一个UIView.LastError()方法,我可以调用它告诉我为什么它忽略我的请求...(哦,如果我们传递它不喜欢的东西怎么样抛出异常?)
-Chris