2016-08-01 4 views
-2

Я пытаюсь сделать прямоугольник, который нарисован, используя верхний правый угол (x, y) вместо обычного верхнего левого угла. Я пробовал масштабирование на -1, но это не помогло.ios draw прямоугольник с верхним правом углом

Мне нужно, потому что я разрабатываю приложение для локали RTL.

+1

Ваш вопрос довольно расплывчатым, попробуйте чтобы лучше объяснить то, что вы пытаетесь достичь, или опубликовать часть своего кода. – Eilon

+0

Ну, в настоящее время каждый прямоугольник рисуется из левого верхнего угла влево. Я хочу получить тот же эффект, только вытаскивая прямоугольник из его верхнего правого угла влево. –

+0

Если я правильно понял, это невозможно в 'UIKit'. Но обязательно есть обходные пути, укажите то, что вы действительно должны достичь, и мы могли бы вам помочь. – Eilon

ответ

0

Если вы используете автоматическую компоновку, вы можете использовать ограничения на начало и конец (вместо ограничений слева и справа), и анимация будет автоматически изменена для целевого языка. Например, рассмотрим следующую упрощенную демо, которое накладывает «занавес» вид, а затем, через две секунды «тянет его в сторону» оживляющий косую ограничение:

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, например, как показано ниже, то он будет анимировать затягивание этого «занавеса» от левого края:

enter image description here

+0

Я попробую ваше решение с @Eilon, и я думаю, что это решит мою проблему. Будет обновляться. –