※ 引述《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()
}
}
}