相关疑难解决方法(0)

如何在Swift中为iOS创建垂直文本UILabel和UITextView?

如果你根据标题来讨论这个问题,但对蒙古语不感兴趣,你可能会寻找这个问答:


我一直在学习Swift,以便为传统的蒙古语开发iOS应用程序.问题是传统的蒙古语是从上到下,从左到右垂直书写的.我的问题是如何垂直显示文本并仍然有换行功能?

如果你和我待在一起,我会试着更清楚地解释这个问题.下面是我想要实现的文本视图的图像.如果外国脚本将你抛弃,我已经包含了遵循相同模式的英文文本.事实上,如果应用程序有任何英文文本要显示,这应该是它的外观.

在此输入图像描述

对于简单的单线UILabel,顺时针旋转90度就可以了.但是,对于多行UITextView,我需要处理换行.如果我只做一个普通的90度旋转,写的第一件事最终会在最后一行.

到目前为止,我已经制定了一个我认为可以解决这个问题的计划:

  1. 制作一个自定义字体,其中所有字母都垂直镜像.
  2. 顺时针旋转文本视图90度.
  3. 水平镜像文本视图.

在此输入图像描述

这应该照顾文本包装.

我可以做镜像字体.但是,我不知道如何为UITextView的旋转和镜像执行Swift编码.我发现以下链接似乎给解决方案的部分提示,但它们都在Objective C中,而不是在Swift中.

应用程序商店中有传统的蒙古应用程序(像这样这个),但我还没有找到任何人共享他们的源代码,所以我不知道他们在幕后做什么来显示文本.我打算让我的代码开源,以便将来的其他人不会为数百万阅读传统蒙古语的人开发应用程序.你可以给予这项努力的任何帮助,不仅是我,也是蒙古人民.即使你不了解自己,提出这个问题以使其更加明显也会有所帮助.

更新

@ sangonz的答案仍然是一个很好的答案,但我暂时将其标记为已接受的答案,因为我无法让一切顺利.特别:

  • 启用滚动(通过在滚动视图中嵌入自定义视图或通过子类化UIScrollView).在github项目中,@ sangonz说这应该很容易,但它不适合我.
  • 在方向改变时获得字线的重新布局(而不是拉伸).我认为通过更多的研究来解决这个问题应该不会太难.
  • 为什么文本行不会一直到视图的边缘?底部存在很大差距.
  • 如何取消链接自定义垂直视图的NSTextStorage与其他UITextView.(见这个问题)

到目前为止,我一直在使用上面提到的原始方法,但我真正想要的是获得类似@sangonz提议的工作方式.

我现在也在考虑其他方法

uitextview uilabel ios swift mongolian-vertical-script

46
推荐指数
1
解决办法
6142
查看次数

Flutter:垂直文本小部件

我在这里查找了 pub.dev 和 flutter 文档,但找不到(或无法说出我的查询)任何针对此简单任务的解决方案。

我想显示一个String字母从上到下,同时保持字母方向默认。所以旋转Text()是行不通的。

我想要的结果是这样的:

H
E
L   T
L   H
O   A
    N
W   K
O   S
R   ??
L
D
Run Code Online (Sandbox Code Playgroud)

另外,我需要将其换行String到下一行(在这种情况下为列)需要一个高度参数来限制每列从上到下的字母数。

如果这最后一部分太难实现,我愿意接受单列解决方案的想法。

dart flutter flutter-layout

4
推荐指数
1
解决办法
1590
查看次数