适用于 iOS 8 但不适用于 iOS 7 的简单动画

Posted

技术标签:

【中文标题】适用于 iOS 8 但不适用于 iOS 7 的简单动画【英文标题】:Simple animation working on iOS 8 but not iOS 7 【发布时间】:2014-11-16 15:30:18 【问题描述】:

我在下面有一个简单的动画代码。它应该将 UILabel 从其当前位置下方 250 点移动到当前位置。它在 ios 8.1 的模拟器中运行良好,但是当我尝试在模拟器中的 iOS 7.1 上对其进行测试时,动画不是从 -250 开始,而是从当前位置开始并向上移动。任何想法为什么?

UIView.animateWithDuration(0.4, delay: 0, options: .CurveEaseOut, animations:
    var animateLabel = self.signLabel.frame
    animateLabel.origin.y -= 250
    self.signLabel.frame = animateLabel
    , completion: finsihed in
    self.doAfterAnimation()
    )

【问题讨论】:

如何让它与 iOS 7 兼容? 您能介绍一下新的坐标系吗?我想在 ios7 和 ios8 上都进行这项工作 【参考方案1】:

看看这个,

//To go from Y = -250 to Y = 250

var animateLabel = UILabel(frame: CGRectMake(0, -250, 100, 100))
animateLabel.text = "MyLabel"

    self.view.addSubview(animateLabel)

    UIView.animateWithDuration(5.0, animations: 

        animateLabel.frame.origin.y = 250

    )



 //To go from Y = 250 to Y = -250

var animateLabel = UILabel(frame: CGRectMake(0, 250, 100, 100))
animateLabel.text = "MyLabel"

    self.view.addSubview(animateLabel)

    UIView.animateWithDuration(5.0, animations: 

        animateLabel.frame.origin.y = -250

    )

【讨论】:

以上是关于适用于 iOS 8 但不适用于 iOS 7 的简单动画的主要内容,如果未能解决你的问题,请参考以下文章

UINavigationController 中的 UITabBarController 适用于 iOS 8 但不适用于 7

Swift 和 TestFlight 适用于 iOS 8 但不适用于 iOS 7

CAGradientLayer 不适用于 iOS 7(但适用于 iOS 6)

Open in... 自定义文件类型适用于 iOS 5、6 和 7,但不适用于 iOS 4

初始屏幕显示完美适用于 ios 7.1 但不适用于 iPad 中的 ios 6.1

iOS 8 代码适用于 iPhone 5s 但不适用于 iPhone 5