Я научился вращать представление с помощью Affine Transforms (см. здесь). Я также узнал об Auto Layout (см. здесь и здесь), и даже программный автоматический макет (см. здесь и здесь). Однако я не знаю, как заставить Auto Layout работать с повернутым представлением.
На этом изображении показано, что я хотел бы сделать:
Я думаю, что проблема связана с шириной и изменением высоты из-за поворота. Есть ли способ заставить повернутый вид заполнить его надстройкой? Есть ли какой-то трюк, чтобы заставить Auto Layout работать, или это просто несовместимо после поворота?
(Я только научился Swift, но я был бы рад пройти через ответы Objective-C, если это то, с чем вы более знакомы.)
Update
Следуя предложению @VinayJain, я сделал следующее:
- приподнял края subview в супервизии в раскадровке.
-
создал IBOutlets для ограничений расстояния со всех сторон подвью.
@IBOutlet weak var rightSpace: NSLayoutConstraint! @IBOutlet weak var leftSpace: NSLayoutConstraint! @IBOutlet weak var topSpace: NSLayoutConstraint! @IBOutlet weak var bottomSpace: NSLayoutConstraint!
-
повернул subview
subview.transform = CGAffineTransformMakeRotation(CGFloat(M_PI_2))
-
изменили ограничения от выходов
self.rightSpace.constant = CGFloat(0) self.leftSpace.constant = CGFloat(0) self.topSpace.constant = CGFloat(0) self.bottomSpace.constant = CGFloat(0)
Но именно в этот момент я понял, что мне действительно не нужно менять значение интервала. Я хочу, чтобы интервал оставался 0. Мне просто нужно его настроить. Однако, вращение беспорядков, что вверх. Эффект показан на следующем изображении: