Фон
Я новичок в разработке iOS, но для того, чтобы начать делать даже самые рудиментарные приложения, используя вертикальный монгольский script, мне нужно иметь вертикальный UITextView
. Я не нашел других разработчиков монгольских приложений, которые делились своим кодом, поэтому я пытаюсь сделать это сам. Монгольский написан сверху донизу, и линии обертываются слева направо, как показано на следующем рисунке:
Прокрутка должна быть горизонтальной (слева направо).
В предыдущем вопросе я предложил комбинацию зеркального шрифта и поворот и зеркалирование UITextView
(потому что это то, что я сделал в Android), Однако после прочтения этого ответа и дальнейших исследований в iOS-способе делать вещи (например, используя TextKit
), я думаю, что может быть лучше просто создать что-то вроде UIVerticalTextView
с нуля, а не испортить нормальный UITextView
. И поскольку я вижу, что UITextView
inheirits из UIScrollView, я предполагаю, что я должен подкласс UIScrollView
сделать UIVerticalTextView
.
Где я сейчас
Ответ о котором я говорил выше подкласса UIView
, но у меня возникли проблемы с прокруткой на работу. Это еще одна причина, по которой я хочу подкласс UIScrollView
. Кроме того, это решение не передавало слова в каждой строке при изменении ориентации.
Я собрал следующие фрагменты, но я не уверен, как их собрать:
- NSTextStorage - В этом не должно быть ничего другого. Он просто сохранит текст монгольского Юникода и любую информацию о стиле.
- NSTextContainer - Чтобы увеличить размер контейнера в вертикальном тексте, необходимо изменить высоту и ширину. (Я так думаю, если это невозможно сделать в другом месте.)
- NSLayoutManager - Что-то особенное нужно делать здесь или позаботиться о
UIVerticalTextView
? -
UIVerticalTextView. Это будет подкласс
UIScrollView
, но какие методы необходимо добавить и/или переопределить?class UIVerticalTextView: UIScrollView { // Which properties to include? // - TextStorage // - TextContainer // - LayoutManager // which methods to override? // which methods to add to give minimal functionality like UITextView? // - init // = text }
Обновления
Этими вопросами являются попытки разбить проблему на более мелкие части:
И попробуйте другой подход:
- Повернутые виды совместимы с автоматическим макетом?
- Вращение представления в layoutSubviews На самом деле у этого есть рабочее решение. Однако в основном это связано с укладкой трех видов друг на друга. Я бы предпочел создать собственный подкласс UIScrollView, который использует TextKit, как я представил в моем текущем вопросе.