代码太大了,无法在此处发布。我的问题如下。当我使用animateWithDuration:animations:completion:
调用duration == 0.3
(可能带有选项)时,并不意味着将通过相同的延迟调用完成块。它被称为2秒,对我来说太长了。
此大延迟通常出现在内存警告之前,但有时可能会按预期工作。
有人可以解释可能导致这种奇怪行为的原因吗?
答案 0 :(得分:0)
是否涉及定时器,如动画定时器触发? 当我的动画被定时器触发时,我遇到了类似的问题。事实证明动画不止一次启动。 animationOngoing标志在完成之前停止动画再次启动。
// Timer function
func timerTextToggle(timer: NSTimer) {
if self.animationOngoing == false {
self.flipAnimation()
}
}
// Animation function
func flipAnimation() {
// important note: it's UIViewAnimationOptions,
// not UIViewAnimationTransition
self.animationOngoing = true
if self.animationToggle == false {
UIView.transitionFromView(self.singleTapLabel!,
toView: self.doubleTapLabel!,
duration: animDuration,
options: UIViewAnimationOptions.TransitionFlipFromBottom,
completion: {
(value: Bool) in
self.animationOngoing = false
})
} else {
UIView.transitionFromView(self.doubleTapLabel!,
toView: self.singleTapLabel!,
duration: animDuration,
options: UIViewAnimationOptions.TransitionFlipFromTop,
completion: {
(value: Bool) in
self.animationOngoing = false
})
}
self.animationToggle = !self.animationToggle
}
答案 1 :(得分:0)
我遇到了类似的问题,虽然没有关于您的方案的进一步信息,但我不知道这是否也适用于您的问题。
我在becomeFirstResponder
的完成区中的UITextField
上呼叫animateWithDuration:delay:options:animations:completion
。记录显示正在及时调用完成块,但键盘需要几秒钟才能显示。这只发生在首次启动键盘时。
This answer帮我解决了这个问题......结果发现这与iOS模拟器有某种联系。当我没有调试应用程序时,这个问题没有发生......另一个在模拟器中追踪数小时的错误的经典例子并没有实际存在。
答案 2 :(得分:0)
找到了这个问题的原因。它是在主线程中呈现的很多UIWebView
个对象。似乎不可能阻止他们的装载。无论如何,时间分析器显示即使它们在屏幕上不可见,也花费大量时间来渲染它们。
是的,由于要求