Если вы используете автоматическую компоновку, вы можете использовать ограничения на начало и конец (вместо ограничений слева и справа), и анимация будет автоматически изменена для целевого языка. Например, рассмотрим следующую упрощенную демо, которое накладывает «занавес» вид, а затем, через две секунды «тянет его в сторону» оживляющий косую ограничение:
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()
}
}
Если локализация вашего проекта является язык LTR, он будет оживлять вытягивание этой «занавески» с правого края.
Но если локализация вы проекта является язык RTL, например, как показано ниже, то он будет анимировать затягивание этого «занавеса» от левого края:
Ваш вопрос довольно расплывчатым, попробуйте чтобы лучше объяснить то, что вы пытаетесь достичь, или опубликовать часть своего кода. – Eilon
Ну, в настоящее время каждый прямоугольник рисуется из левого верхнего угла влево. Я хочу получить тот же эффект, только вытаскивая прямоугольник из его верхнего правого угла влево. –
Если я правильно понял, это невозможно в 'UIKit'. Но обязательно есть обходные пути, укажите то, что вы действительно должны достичь, и мы могли бы вам помочь. – Eilon