【发布时间】:2017-01-29 20:53:22
【问题描述】:
我正在开发音乐播放器,并为歌曲、专辑和艺术家设置了标签。现在,只是为了 UI,我希望歌曲标签始终使用 3 行空间,即使文本是 1 行。我在属性检查器中将行数设置为 3,但如果歌曲标题实际上那么长,它只会显示 3 行!
我的第一个解决方法是将标签的高度锁定为文本大小的 3 倍(然后一些用于间距)。有没有更好的解决方案?或者我可以使用其他对象?
【问题讨论】:
-
我建议添加屏幕截图,它们将非常有助于描述您想要实现的目标。
-
我需要一个标签来始终显示 3 行...真的需要截图吗?
-
你知道你想在哪里分割行吗?您可以将字符串拆分为子字符串,因为您可以通过在引号之间说出
\r来强制换行(这是一个反斜杠)。 -
另外,请注意,如果您确实强制将高度设置为
3 x whatever_pointsize,您的文本(即使它小于 3 行)将始终垂直居中。如果您对此感到满意,我可以提供一个可能的解决方案,但它需要对UILabel进行子类化。话虽如此,如果您的整体布局相对简单,那么最好的解决方案可能是标签中的几个约束。 -
嗯,字符串来自系统音乐播放器。所以它是从我手机上关于那首歌的信息中获取的。为了显示我使用的歌曲的文本:songLabel.text = nowPlayingItem.title(这是一个字符串)我锁定了高度,它确实垂直居中。关于如何在标签顶部而不是垂直居中开始文本的任何想法?