【发布时间】:2019-08-31 09:56:14
【问题描述】:
我目前正在做一个项目,我需要能够设置 UILabel 的行数。这意味着如果我输入 5,标签必须符合并返回 4 次(字符太少等问题不会成为问题)。下面我附上了一张图片,其中包含一个示例,以澄清我的问题:
到目前为止,我已经尝试通过设置 .numberOfRows 属性来做到这一点,但这只是对 UILabel 设置了一个限制,这不是我想要的(如果你好奇,下面有一些代码)。有什么帮助吗?
我的代码:
if Double(w!) > 277 {
print("Values:")
print(w!)
let numRows = Int(w!/237)
print(numRows)
heightOfCell += Double(numRows)*20.5
cell!.textLabel?.numberOfLines = numRows + 2
}
【问题讨论】:
-
不清楚“标签必须符合并返回4次”是什么意思,所以不清楚目标是什么。您能否发布一些屏幕截图或其他内容,以阐明您要完成的工作?
-
@matt 我已经编辑了我的问题,您介意再看一下吗?
-
好吧,在您的插图中,这似乎与更改文本换行的宽度有关。这可能是标签本身的宽度。或者它可能是首选的MaxLayoutWidth。
-
@BobSamuels 你是想说即使设置了属性
numberOfLines,你的标签仍然只显示一行? -
如果我对您的理解正确,您希望强制标签以这样的方式布局,使其以给定的行数结束。这不能通过 UILabel 的标准接口轻松完成。
UILabel的正常行为是填充行直到达到标签的宽度,然后为文本的其余部分添加新行,再次填充该行并根据需要添加其他行直到达到numberOfLines.您应该在开源社区的某个地方寻找可随时使用的自定义标签实现,或者自己提出自定义解决方案。
标签: ios swift uitableview uilabel