Ios 展开UILabel文本
我正在尝试使我的应用程序,使您不必滚动浏览长文本帖子,但可以选择显示全部和显示较少(默认情况下显示较少)。我一直在尝试这样做,但如果不将所有单元格更改为“显示更多”或“显示更少”,我就无法做到这一点。下面是我如何使它最初显示较少的字符数(Message=post文本,postCellObj=我用来调用cell类的对象)这段代码是在cellforrowatinexpath中完成的Ios 展开UILabel文本,ios,iphone,xcode,swift,Ios,Iphone,Xcode,Swift,我正在尝试使我的应用程序,使您不必滚动浏览长文本帖子,但可以选择显示全部和显示较少(默认情况下显示较少)。我一直在尝试这样做,但如果不将所有单元格更改为“显示更多”或“显示更少”,我就无法做到这一点。下面是我如何使它最初显示较少的字符数(Message=post文本,postCellObj=我用来调用cell类的对象)这段代码是在cellforrowatinexpath中完成的 if messages.isEmpty == false { var messageString =
if messages.isEmpty == false {
var messageString = messages[indexPath.row] as String
var messageFinal = ""
if count(messageString) >= 200 {
var messageNs = messageString as NSString
var messageFinal = messageNs.substringWithRange(NSRange(location: 0, length: 200))
postCellObj.message.text = messageFinal as String + "..."
} else {
postCellObj.message.text = messages[indexPath.row]
}
}
如果有人知道怎么做,我们将不胜感激。谢谢你的阅读 此设计将使用两个标签。第一个标签用于原始文本,另一个标签将显示“全部显示”或“较少显示” 唯一需要做的一件事是设置第一个标签(原始文本)的框架 “全部显示”的帧高可以通过行高(firstLabel.font.lineHeight)*所需行数来计算。请记住将标签属性“numberOfLines”和“lineBreakMode”设置为“ByTruncingTail” “Show Less”的框架高度可以通过UILabel支持的“sizeThatFits”计算。参数“size”可以设置为(frame.size.width,MAXFLOAT)
我不熟悉swift,所以我只描述一下我将如何使用这个设计。希望这有帮助 我已经让它调整到单元格中的文本量。我真的不知道怎么做,如果我单击一个按钮,它只会更改该单元格的文本。您可能需要更改单元格的高度并重新加载它(tableView.reloadData、tableView.reloadRowsAtIndexPaths或tableView.reloadSections)。使用
label.sizeToFit()
调整UILabel中的文本