我正在使用animateKeyframesWithDuration:delay:options:animations:completion:
调整(移动)多个视图的帧。但是,当动画完成时,视图将恢复到原始位置 - 就像动画的结果不会持续存在一样。
以下是受影响的代码:
UIView.animateKeyframesWithDuration(0.5, delay: 0, options: .CalculationModeCubic, animations: {
UIView.addKeyframeWithRelativeStartTime(0.0, relativeDuration: 0.5) {
//Moving main View
tappedView.frame = CGRectMake((self.screenSize.width/2)-250, (self.screenSize.height/2)-250, 500, 500)
//Centering other views
tappedImage.frame = CGRectMake(185.5, 10, 129, 129)
tappedTitle.frame = CGRectMake(100, 149, 300, 33)
tappedShort.frame = CGRectMake(125, 175, 250, 85)
tappedDetail.frame = CGRectMake(20, 230, 460, 135)
tappedClose.frame = CGRectMake(370, 477, 128, 21)
}
}, completion:nil)
我尝试过包含一个完成处理程序,将框架设置在最终位置:
{(finished: Bool) -> Void in
tappedImage.frame = CGRectMake(185.5, 10, 129, 129)
tappedTitle.frame = CGRectMake(100, 149, 300, 33)
tappedShort.frame = CGRectMake(125, 175, 250, 85)
tappedDetail.frame = CGRectMake(20, 230, 460, 135)
tappedClose.frame = CGRectMake(370, 477, 128, 21)
}
确实有效,但会产生闪烁 - 就像动画结束(它开始恢复到原始位置)和完成处理程序触发之间有一点延迟。
任何帮助表示感谢。