我正在尝试对动画制约。它完美的iPhone SE,但不能在iPhone 7,6,8等动画制约因素:使用IB查看“iPhone视图”,但不使用其他iPhone
BIG编辑:
后试图修复它时,我明白了,当我去在IB中选择视图为iPhone 8,当我启动并模拟它时,它可以在iPhone 8上完美运行。当我选择iPhone SE时,它在SE上完美运行。 我不明白? Interface Builder的预览不应该影响模拟?!
我的看法是这样的:
动画是对的UIImageView。有一个在的UIImageView和标签之间的约束没有链接: 该图像具有X和Y约束来对齐在屏幕的中心,并且高度与宽度的限制,我用下面的代码动画:
func animate() {
UIView.animate(withDuration: 1.0,
delay:0.0,
options: .curveEaseIn ,
animations:{
self.imageHeightConstraint.constant = 240.0
self.imageWidthConstraint.constant = 240.0
self.imageAlignYAxes.constant = 0
self.logoImage.center.x = (self.view.frame.width)/2
self.logoImage.center.y = (self.view.frame.height)/2
self.view.layoutIfNeeded()
},
completion:nil)
animateTwo()
}
图像从中心移动,直到我说这个代码:
self.imageAlignYAxes.constant = 0
但现在它是标签刚下来的是移动图像,但仅适用于iPhone 6,6s,7,7+等,8不在SE上。在SE上,标签不会移动的效果非常好。
我正在与SE模型的故事板,我想这就是为什么它在SE上工作,但我不明白为什么动画移动标签,而不应该。
在此先感谢您的答案!
非常感谢您的回答!我如何知道它是否仅启用了设备? – Julien
在你的故事板中,选择你的约束,并检查属性查看器,你会发现,如果约束适用于特定的设备大小。 – Aks
查看这些链接:https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/AutolayoutPG/Size-ClassSpecificLayout.html https:// medium。com/@ craiggrummitt/size-classes-in-interface-builder-in-xcode-8-74f20a541195 – Aks