Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 展开UILabel文本_Ios_Iphone_Xcode_Swift - Fatal编程技术网

Ios 展开UILabel文本

Ios 展开UILabel文本,ios,iphone,xcode,swift,Ios,Iphone,Xcode,Swift,我正在尝试使我的应用程序,使您不必滚动浏览长文本帖子,但可以选择显示全部和显示较少(默认情况下显示较少)。我一直在尝试这样做,但如果不将所有单元格更改为“显示更多”或“显示更少”,我就无法做到这一点。下面是我如何使它最初显示较少的字符数(Message=post文本,postCellObj=我用来调用cell类的对象)这段代码是在cellforrowatinexpath中完成的 if messages.isEmpty == false { var messageString =

我正在尝试使我的应用程序,使您不必滚动浏览长文本帖子,但可以选择显示全部和显示较少(默认情况下显示较少)。我一直在尝试这样做,但如果不将所有单元格更改为“显示更多”或“显示更少”,我就无法做到这一点。下面是我如何使它最初显示较少的字符数(Message=post文本,postCellObj=我用来调用cell类的对象)这段代码是在cellforrowatinexpath中完成的

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中的文本