3

关于我所拥有的一个小解释:

我有一个包含多个组件(列)的 UIPickerView,并且所有组件都填充了 INTEGER_MAX 行,以提供“无限循环”方面。每个组件的内容来自该特定组件的 NSArray 字符串。字符串(单词)有不同的大小,有些被截断(例如,“Imagination”变成了“Imaginat...”,而“Smart”保持不变)。在每个组件的每一行中,我都使用 UILabel 来显示文本,并且我正在使用

tLabel.textAlignment = NSTextAlignmentCenter;
tView.adjustsFontSizeToFitWidth = YES;

以确保文本适合并对齐。

关于我需要什么的一个小解释:

我需要使所有标签(INTEGER_MAX * nr_of_components)具有相同的文本大小。但是,在选择器填充了自动调整文本大小的标签之前,我无法分辨哪一个是其中最小的 font.size。

关于我在想什么但未能实现的一个小解释:

我考虑按照之前的解释加载选择器,然后扫描前 [arrayX count] 行以找到该组件所需的最小字体大小,然后将其与其他组件进行比较,直到发现所需的“绝对”最小字体大小。之后,将需要访问所有组件上的所有标签并将 font.size 更改为所需的最小尺寸。

这应该动态完成,因为不知道应用程序是否在 iPhone、iPod 或 iPad 上运行。

好吧,非常欢迎任何帮助。提前致谢!

4

1 回答 1

1

如果我正确理解了您的问题,您可能想看看这个答案

该策略基本上是截断(省略号)而不是字体缩小。


编辑(基于评论)

强烈建议不要将所有文本设置为最小字体。假设你有这样的元素:

好的,到目前为止,这些都非常适合您的标签,并且字体大小合适。现在添加一个更长的项目:

  • 草莓
  • 菠萝

现在你所有的项目都小了一点,但那仍然是可读的,所以它是可以接受的。然后出现一个巨大的项目,例如:

  • 草莓
  • 菠萝
  • 某种奇异的水果有一个令人难以置信的长名字

这将使您的选择器中的所有项目变得非常小,并且难以阅读。

但如果你仍然想走这条路,我建议你看看text 中的字体大小。这个问题也可能有帮助。

于 2013-08-27T18:28:58.583 回答