-2

我想创建一个这样的视图来显示一些长文本。为此得到了一些豆荚,但我想以编程方式进行。

提前致谢。

第一张图片 -> 点击前的视图。

第二张图片->点击后查看。

第一张图 第二张图

4

1 回答 1

0

如果您需要一个快速工作的解决方案,您可以试试这个。

创建一个带有两个标签的 TableViewCell:具有固定高度的标题标签(比如说 48)和描述标签(多行)

保持数组中每个单元格的高度,默认情况下保持标题标签的高度,只是为了显示标题标签(比如 itemHeights = [48,48,48]

当您选择单元格时,在委托方法“didSelectRowAt:”内,切换高度

if self.itemHeights[indexPath.row] == UITableViewAutomaticDimension {
            self.itemHeights[indexPath.row] = 48
} else {
            self.itemHeights[indexPath.row] = UITableViewAutomaticDimension
}
self.tableView.reloadRows(at: [indexPath], with: .automatic)

在委托方法“heightForRowAt:”中,返回更新后的高度

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        return self.itemHeights[indexPath.row]

}

注意:这只是一种解决方法,可以为您提供几乎相同的结果,但有一些生涩的动画。

于 2017-10-30T15:14:30.270 回答