作者aecho (给自己自由)
看板MacDev
标题Re: [问题] 展开tableview中cell的方法
时间Wed Jun 3 11:00:58 2020
※ 引述《frank61003 (驼龟)》之铭言:
: 想请问大家
: 如果想做一个类似涂鸭墙的TableView
: 现在是把每个cell设置成一则贴文的样式
: 那点击留言後弹开留言需要用什麽元件写
: 因为每则贴文的留言数都不一样
: 是要在cell里面再放个完全展开且不能滑动的tableView吗
: 还是有其他元件可以达成这种元件数量未定的功能
: 谢谢大家
我实作过的一个方式,是在cell里,再塞一个客制化的UITableView。
下面这个客制的TableView, 它的intrinsicContentSize会依它的contentSize改变。
而一些教怎麽动态改变高度的cell的网路文章,会说明怎麽依靠intrinsicContentSize,
让UI元件自己决定它的高度(或宽度)
为了避免nested的TableView的UI行为,和外层的互相千扰,
我会视情形,让它不能接收ui event。不过这边跟美工 or PM希望怎麽呈现有关系。
所以,只能视状况调整。OA
import UIKit
/**
* 这个TableView的intrinsicContentSize会跟着contentSize而改变。
*/
class BSExpandTableView: UITableView {
// See this: https://stackoverflow.com/a/48623673/419348
override var intrinsicContentSize: CGSize {
layoutIfNeeded()
return CGSize(width: UIView.noIntrinsicMetric, height: contentSize.height)
}
override var contentSize: CGSize {
didSet {
self.invalidateIntrinsicContentSize()
}
}
}
--
你所浪费的今天,是昨天死去的人奢望的明天;
你所厌恶的现在,是未来的你回不去的曾经。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.34.220.178 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/MacDev/M.1591153261.A.809.html
※ 编辑: aecho (1.34.220.178 台湾), 06/03/2020 11:01:50