Это решение немного сумасшедшее, но оно логично и имеет отличный визуальный результат. Я работаю с NSLayoutManager
и парой NSTextContainer
s, выкладывая текст в два столбца. Поскольку я использую несколько текстовых контейнеров (и я не уверен, что мне нужно несколько UITextView
), я переопределяю draw(rect: CGRect)
метод MyDrawingView: UIView
.
Проблема в том, что использование self.contentMode = .redraw
все еще приводит к небольшому растяжению при вращении - достаточно значительному, чтобы нарушить условия сделки.
Я заметил, что настройка contentMode = .left
или даже contentMode = .scaleAspectFit
была близка к тому, что я хотел, с точки зрения идеального поворота пикселей. Но, очевидно, я не получил нужного кол-ва.
Итак, я перебрал layoutSubviews()
, переключил contentMode
на .scaleAspectFit
, вызвал super.layoutSubviews()
, а затем переключил его обратно. : P
override func layoutSubviews() {
self.contentMode = .scaleAspectFit
super.layoutSubviews()
self.contentMode = .redraw
}
Это ... идеально.