Como criar um UITextView vertical subclassificando-o do UIScrollView no Swift?

fundo

Sou iniciante no desenvolvimento do iOS, mas para começar a criar os aplicativos mais rudimentares usando o script mongol vertical, preciso ter umUITextView. Não encontrei nenhum outro desenvolvedor de aplicativos mongol compartilhando seu código, por isso estou tentando fazer isso sozinho. O mongol é escrito de cima para baixo e as linhas são agrupadas da esquerda para a direita, conforme ilustrado no gráfico a seguir:

A rolagem deve ser horizontal (da esquerda para a direita).

Em umpergunta anterior Propus uma combinação de uma fonte espelhada e uma rotação e espelhamento doUITextView (porque foi isso que eu fiz no Android). No entanto, depois de leresta resposta e fazer mais pesquisas sobre a maneira iOS de fazer as coisas (como usarTextKit), Acho que talvez seja melhor criar apenas algo comoUIVerticalTextView a partir do zero, em vez de mexer com o normalUITextView. E desde que eu vejo issoUITextView inheirits de UIScrollView, Suponho que eu deva subclasseUIScrollView para tornar oUIVerticalTextView.

Onde estou agora

oresposta que eu mencionei acima subclasseUIView mas estava tendo muitos problemas para fazer a rolagem funcionar. Essa é outra razão pela qual quero subclassificarUIScrollView. Além disso, essa solução não retransmitiu as palavras em cada linha quando houve uma mudança de orientação.

Reuni as seguintes peças, mas não sei como reuni-las:

NSTextStorage - Não deve haver nada diferente com isso. Ele armazenará apenas o texto Unicode da Mongólia e qualquer informação de estilo.NSTextContainer - A altura e a largura precisam ser alteradas para fornecer o tamanho vertical do contêiner de texto. (Acho que sim, de qualquer maneira. A menos que isso possa ser feito em outro lugar.)NSLayoutManager - Alguma coisa especial precisa ser feita aqui ou é cuidada peloUIVerticalTextView?

UIVerticalTextView - Esta será uma subclasse deUIScrollView mas quais são os métodos que precisam ser adicionados e / ou substituídos?

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
}
Atualizações

Essas perguntas são tentativas de dividir o problema em pedaços menores:

Como criar UITextView a partir do zero?Como inicializar NSTextStorage com uma seqüência de caracteres no Swift

E tentando com uma abordagem diferente:

As vistas giradas são compatíveis com o layout automático?Girando uma vista no layout Isso realmente tem uma solução funcional agora. No entanto, envolve basicamente empilhar três visualizações umas sobre as outras. Eu ainda preferiria criar uma subclasse UIScrollView personalizada que use o TextKit como apresentei na minha pergunta atual.

questionAnswers(1)

yourAnswerToTheQuestion