Re: [問題] 展開tableview中cell的方法
※ 引述《frank61003 (駝龜)》之銘言:
: 想請問大家
: 如果想做一個類似塗鴨牆的TableView
: 現在是把每個cell設置成一則貼文的樣式
: 那點擊留言後彈開留言需要用什麼元件寫
: 因為每則貼文的留言數都不一樣
: 是要在cell裡面再放個完全展開且不能滑動的tableView嗎
: 還是有其他元件可以達成這種元件數量未定的功能
: 謝謝大家
第一種
你可以設一個資料結構 比如
struct CellData {
let content: String //貼文內容
/* 頭像,時間隨你加 或是你設另一個資夾結構都包起來也行 */
let isExpand: Bool
let expandCellData: [留言的資料結構]
let sention: Int
}
然後api回來後自己組成上列格式,再numberofRow裡 總數要取expandCellData + 1
然後cell for row , section,indexpath都為0為貼文cell 其餘留言cell
然後再留言cell判斷isExpand是true才塞資料進去
heightForRow也要判斷isExpand == false 為 0
再didSelectRow 裡判斷如果indexPath.section == 0 時
更改當前section下的CellData 的isExpand狀態
可以用enumerated().map 同時取到idx 和 資料
ex
if indexPath.row == 0 {
let newData = myData.enumerated().map { (idx, data)
if section == indexPath.section {
data.isExpand.toggle() //忘了可不可以直接改 不行就先取出來
return data
}else {
return data
}
}
self.myData = newData
tableView.reloadData()
}
這樣可以點擊貼文展開收合下面留言,多個也沒問題
第二種方法,不過通常是很舊的寫法, 找到的範例幾乎都是Objc版本的
也就是準備兩個dataSource , 一開始全都只顯示SentionHeader
點擊後觸發action 把cell insert到相對應的section下面
要收合時再對應的section index delete掉相應section內的cell資料
通常tableView的style會設成group
這方法麻煩的是insert和delete時如果跟原本datasource對應不上就會掛掉
// 純手打有地方打錯請自行修正 ^^
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.116.161.187 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/MacDev/M.1582964780.A.E6C.html
※ 編輯: yuanruo (122.116.161.187 臺灣), 02/29/2020 16:27:16
推
03/02 01:43,
4年前
, 1F
03/02 01:43, 1F
→
03/02 01:44,
4年前
, 2F
03/02 01:44, 2F
→
03/02 01:45,
4年前
, 3F
03/02 01:45, 3F
推
03/02 14:56,
4年前
, 4F
03/02 14:56, 4F
→
03/02 14:58,
4年前
, 5F
03/02 14:58, 5F
推
03/02 17:18,
4年前
, 6F
03/02 17:18, 6F
→
03/02 17:19,
4年前
, 7F
03/02 17:19, 7F
→
03/02 17:20,
4年前
, 8F
03/02 17:20, 8F
→
03/02 17:21,
4年前
, 9F
03/02 17:21, 9F
推
03/02 19:42,
4年前
, 10F
03/02 19:42, 10F
→
03/02 19:43,
4年前
, 11F
03/02 19:43, 11F
→
03/02 19:43,
4年前
, 12F
03/02 19:43, 12F
→
03/02 19:44,
4年前
, 13F
03/02 19:44, 13F
→
03/02 19:45,
4年前
, 14F
03/02 19:45, 14F
→
03/02 19:45,
4年前
, 15F
03/02 19:45, 15F
→
03/02 19:46,
4年前
, 16F
03/02 19:46, 16F
→
03/02 21:27,
4年前
, 17F
03/02 21:27, 17F
推
03/04 01:28,
4年前
, 18F
03/04 01:28, 18F
→
03/04 01:29,
4年前
, 19F
03/04 01:29, 19F
→
03/04 01:30,
4年前
, 20F
03/04 01:30, 20F
→
03/04 01:31,
4年前
, 21F
03/04 01:31, 21F
→
03/04 01:32,
4年前
, 22F
03/04 01:32, 22F
→
03/04 01:33,
4年前
, 23F
03/04 01:33, 23F
→
03/04 01:33,
4年前
, 24F
03/04 01:33, 24F
→
03/05 21:15,
4年前
, 25F
03/05 21:15, 25F
→
03/05 21:15,
4年前
, 26F
03/05 21:15, 26F
推
03/08 14:07,
4年前
, 27F
03/08 14:07, 27F
→
03/08 14:07,
4年前
, 28F
03/08 14:07, 28F
→
03/08 19:02,
4年前
, 29F
03/08 19:02, 29F
→
03/08 19:04,
4年前
, 30F
03/08 19:04, 30F
→
03/08 19:10,
4年前
, 31F
03/08 19:10, 31F
→
03/08 19:10,
4年前
, 32F
03/08 19:10, 32F
推
03/10 11:45,
4年前
, 33F
03/10 11:45, 33F
→
03/10 11:45,
4年前
, 34F
03/10 11:45, 34F
→
03/10 11:46,
4年前
, 35F
03/10 11:46, 35F
推
03/10 12:36,
4年前
, 36F
03/10 12:36, 36F
→
03/10 12:37,
4年前
, 37F
03/10 12:37, 37F
推
03/10 16:02,
4年前
, 38F
03/10 16:02, 38F
→
03/10 16:02,
4年前
, 39F
03/10 16:02, 39F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 4 之 5 篇):
MacDev 近期熱門文章
PTT數位生活區 即時熱門文章