iOS 10, Swift 3,1Animieren von Auto-Layout Einschränkungen nicht funktioniert
Ich habe einen UIView
genannt graphPopup
in einem UITableViewCell
, die ich zu animieren bin versucht. Wenn jemand auf ein Diagramm tippt, erscheint ein Popup und ich möchte, dass es seine x
und y
an Ort und Stelle animiert.
Alles funktioniert außer der Animation des Popup. Hier ist, wie es jetzt aussieht:
ich das Popup zu Dia von Punkt-zu-Punkt in der richtigen Position will. Hier ist mein Code:
class TotalCell: UITableViewCell, ChartViewDelegate{
@IBOutlet weak var graphPopup: UIView!
@IBOutlet weak var popupConstraintY: NSLayoutConstraint!
@IBOutlet weak var popupConstraintX: NSLayoutConstraint!
func chartValueSelected(_ chartView: ChartViewBase, entry: ChartDataEntry, highlight: Highlight) {
//...
graphPopup.isHidden = false
//Set new auto layout constraints
self.popupConstraintX.constant = highlight.xPx-44
self.popupConstraintY.constant = highlight.yPx+18
//Animate (which does nothing)
UIView.animate(withDuration: 1.0, animations: {
self.graphPopup.layoutIfNeeded()
})
}
}
Irgendeine Idee, was ich falsch machen könnte? Wenn ich das Animationsbit vollständig entferne, verhält es sich genauso, aber ich weiß, dass die Animation aufgerufen wird.
Irgendwelche Ideen?
Zwei Fragen - haben Sie versucht, 'layoutIfNeeded()' auf 'self' zu verwenden, anstatt' graphPopup'? Und zweitens - wo versteckst du das Popup? Haben Sie versucht, es ständig sichtbar zu halten? Es wäre seltsam, aber vielleicht passiert die Animation, wenn sie nicht sichtbar ist? – Losiowaty