我正在嘗試對動畫制約。它完美的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