【问题标题】:Is there a font size to screen size relation? iPhone字体大小与屏幕大小有关系吗?苹果手机
【发布时间】:2017-02-27 09:25:40
【问题描述】:

我有一个 UITextView,我在其中逐行写入来自 csv 的值。

典型线路

“|”表示屏幕边缘

| name of place       timeAtPlace        |
| name of place       timeAtPlace        |
| longer name of place       timeAtPlace | 

文本向左对齐,但我也希望 timeAtPlace 向右对齐。 实现这一目标

| name of place              timeAtPlace |
| name of place              timeAtPlace |
| longer name of place       timeAtPlace |

我的想法是将字符串填充到行的长度。为此,我需要知道当前设备的一行可以容纳多少个字符。

有没有办法计算这个,字体点大小和设备点大小之间有什么关系吗?或者有什么方法可以通过字体大小来划分屏幕(*我说的是屏幕,但在这种情况下是指 UITextView)大小,以知道一行可以容纳多少个字符?

【问题讨论】:

  • 你不能用UILabel 吗?
  • 我可以。请详细说明这对我有什么帮助?
  • 您不想在结尾处截断像(example...) 这样的点吗?
  • 没有。我想在左侧单词和右侧单词之间添加空格,以便左侧单词对齐​​屏幕左侧,右侧单词对齐​​屏幕右侧。如果我能计算出每行有多少个字符,我就可以计算出有多少个空格字符“”我可以附加到每一行
  • 但是为什么你不使用两个标签呢?使用两个单独的标签!

标签: ios iphone uitextview swift3 font-size


【解决方案1】:

如果您想使用评论中提到的UILabel,并且想要显示文本而不截断右侧对齐,那么您可以执行类似的操作,

   UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(20, 500, 100, 30)];  // your desired frame

label.backgroundColor = [UIColor yellowColor];
label.textAlignment = NSTextAlignmentRight;
[label setLineBreakMode:NSLineBreakByCharWrapping];

label.text = @"This is long string to test";

 [self.view addSubview:label];

【讨论】:

  • 当然,我可以将始终相同长度的右手文本放在 UILabel 中,然后计算 UILabel 宽度并创建第二个 UILabel 以适应屏幕宽度的剩余空间。将左边的文本放在那个 UILabel 中并使用 adjustFontToFit。但是我不知道从 CSV 文件返回了多少行,如果 100,000+ 不想多次添加 UILabel 实例。 UITextField(我假设)将占用比许多 UILabel 更少的内存。如果不是 UITextField,那么我将查看自定义单元格和 UITableview。
猜你喜欢
  • 2019-03-27
  • 2015-08-07
  • 1970-01-01
  • 2023-03-22
  • 2021-02-13
  • 2019-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多