animateKeyframesWithDuration不会持久化

时间:2016-04-04 03:23:35

标签: ios swift uiview

我正在使用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)

        }

确实有效,但会产生闪烁 - 就像动画结束(它开始恢复到原始位置)和完成处理程序触发之间有一点延迟。

任何帮助表示感谢。

0 个答案:

没有答案