Die mittlere Sperre wird in der Animation schneller nach oben animiert als der obere Bereich. Wie animiere ich die mittlere Sperre so, dass sie sich neben der oberen Scheibe nach oben bewegt? Um genauer zu sein, möchte ich, dass die mittlere Schlossmitte immer mit der oberen Fensterscheibe ausgerichtet ist, wenn sie sich nach oben und vom Bildschirm weg bewegt.So animieren Sie die Ansicht basierend auf einer anderen Ansicht
Dies ist der Code, den ich zur Zeit habe, lockBorder
und lockKeyhole
ist das, was als „Mittelsperre“ bezeichnet wird, die nach oben zu schnell im Vergleich zum topLock
bewegt:
@IBOutlet var topLock: UIImageView!
@IBOutlet var bottomLock: UIImageView!
@IBOutlet var lockBorder: UIImageView!
@IBOutlet var lockKeyhole: UIImageView!
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
openLock()
}
func openLock() {
UIView.animateWithDuration(0.5, delay: 1.0, options: [], animations: {
self.lockKeyhole.transform = CGAffineTransformMakeRotation(CGFloat(3.14))
}, completion: { _ in
UIView.animateWithDuration(0.6, delay: 0.2, options: [], animations: {
var topFrame = self.topLock.frame
topFrame.origin.y -= topFrame.size.height
var bottomFrame = self.bottomLock.frame
bottomFrame.origin.y += bottomFrame.size.height
var lockBorderFrame = self.lockBorder.frame
lockBorderFrame.origin.y -= self.view.frame.height
var lockKeyholeFrame = self.lockKeyhole.frame
lockKeyholeFrame.origin.y -= self.view.frame.height
self.topLock.frame = topFrame
self.bottomLock.frame = bottomFrame
self.lockKeyhole.frame = lockKeyholeFrame
self.lockBorder.frame = lockBorderFrame
}, completion: { finished in
})
})
}
Warum machst du es nicht nur eine Unteransicht der oberen Hälfte? – jtbandes
@jtbandes Können Sie zeigen, wie Sie das tun würden? Momentan habe ich alles im Storyboard. – JEL
Es ist schwer für mich zu verstehen, wie es aufgebaut ist, wenn man nur den Code betrachtet. Was ich empfehle, ist, dass 'topLock' und' lockKeyhole'/'lockBorder' Geschwisteransichten sind, sollten sie Unteransichten von' topLock' sein. Dann kannst du 'topLock' einfach verschieben und die anderen nehmen. – jtbandes