Wenn Sie automatisches Layout verwenden, können Sie die führenden und nachgestellten Einschränkungen (anstelle der linken und rechten Einschränkungen) verwenden und die Animation wird automatisch an die Zielsprache angepasst. Betrachten wir zum Beispiel die folgende vereinfach Demo, die einen „Vorhang“ Ansicht überlagert und dann zwei Sekunden später „zieht es zur Seite“ durch die abfallende Einschränkung Animieren:
let curtain = UIView()
curtain.backgroundColor = .darkGrayColor()
curtain.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(curtain)
let trailingConstraint = curtain.trailingAnchor.constraintEqualToAnchor(view.trailingAnchor)
NSLayoutConstraint.activateConstraints([
curtain.leadingAnchor.constraintEqualToAnchor(view.leadingAnchor),
curtain.topAnchor.constraintEqualToAnchor(view.topAnchor),
curtain.bottomAnchor.constraintEqualToAnchor(view.bottomAnchor),
trailingConstraint
])
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, Int64(2 * Double(NSEC_PER_SEC))), dispatch_get_main_queue()) {
trailingConstraint.constant = -self.view.bounds.size.width
UIView.animateWithDuration(0.5) {
self.view.layoutIfNeeded()
}
}
Wenn Lokalisierung Ihres Projekts eine LTR Sprache ist, es belebt das Zurückziehen dieses "Vorhangs" von der rechten Kante.
Aber wenn Sie Projekt Lokalisierung eine RTL Sprache ist, wie unten gezeigt, dann wird es das Ziehen dieses „Vorhang“ von der linken Kante animieren:
Ihre Frage recht vage ist, versuchen um besser zu erklären, was du erreichen willst oder poste etwas von deinem Code – Eilon
Nun, momentan wird jedes Rect von der oberen linken Ecke nach links gezogen. Ich möchte den gleichen Effekt, nur das Rect von seiner oberen rechten Ecke nach links ziehen. –
Wenn ich es richtig verstanden habe, ist es in 'UIKit' nicht möglich. Aber es gibt sicher Workarounds, Post, was Sie tatsächlich erreichen müssen und wir könnten Ihnen helfen. – Eilon