适用于 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