MacDev 板


LINE

※ 引述《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://webptt.com/m.aspx?n=bbs/MacDev/M.1582964780.A.E6C.html ※ 編輯: yuanruo (122.116.161.187 臺灣), 02/29/2020 16:27:16
1F:推 frank61003: 謝謝分享 當貼文不只一則的話,223.137.174.171 03/02 01:43
2F:→ frank61003: numberofRow 要設為所有貼文數加上所223.137.174.171 03/02 01:44
3F:→ frank61003: 有貼文的留言數。我這樣理解對嗎?223.137.174.171 03/02 01:45
4F:推 frank61003: 喔 我懂了 是貼文數+1沒錯 請問是每則 60.248.161.187 03/02 14:56
5F:→ frank61003: 貼文視為一個section對嗎 60.248.161.187 03/02 14:58
6F:推 frank61003: 目前能分section,但是每個section的 60.248.161.187 03/02 17:18
7F:→ frank61003: row == 0的時候,都會拿到datasource的 60.248.161.187 03/02 17:19
8F:→ frank61003: 第一筆,所以現在整個tableview都是第 60.248.161.187 03/02 17:20
9F:→ frank61003: 一筆 60.248.161.187 03/02 17:21
10F:推 frank61003: 剛發現是我搞錯indexPath.section跟 60.248.161.187 03/02 19:42
11F:→ frank61003: indexPath.row 現在已經可以縮放 60.248.161.187 03/02 19:43
12F:→ frank61003: 我是參考這個影片做的,但現在遇到一個 60.248.161.187 03/02 19:43
13F:→ frank61003: 難題,我是想點cell內的button來展開 60.248.161.187 03/02 19:44
14F:→ frank61003: 點擊貼文是跳到下一個畫面, 60.248.161.187 03/02 19:45
15F:→ frank61003: 不知道能不能解? 60.248.161.187 03/02 19:45
16F:→ frank61003: https://reurl.cc/9Eo15j 60.248.161.187 03/02 19:46
17F:→ yuanruo: button用tag記錄section 做原本貼文的事122.116.161.187 03/02 21:27
18F:推 frank61003: 我button後來有用protocol做出來了 223.137.16.140 03/04 01:28
19F:→ frank61003: https://reurl.cc/V6pejb 223.137.16.140 03/04 01:29
20F:→ frank61003: 請問y大對於展開後需要一欄可以輸入留 223.137.16.140 03/04 01:30
21F:→ frank61003: 言跟送出留言的地方,是在section最後 223.137.16.140 03/04 01:31
22F:→ frank61003: 多一個cell,還是用footer做呢?現在 223.137.16.140 03/04 01:32
23F:→ frank61003: footer市只有加高度讓貼文看起來間隔 223.137.16.140 03/04 01:33
24F:→ frank61003: 大點 223.137.16.140 03/04 01:33
25F:→ yuanruo: 因為影片全用cell做~你沒法用footer122.116.161.187 03/05 21:15
26F:→ yuanruo: 多加一個cell模擬最後一~像第一個一樣122.116.161.187 03/05 21:15
27F:推 frank61003: 請問y大知道展開留言後,能自動往下 111.240.134.4 03/08 14:07
28F:→ frank61003: 滑到最下方留言的功能要怎麼做嗎? 111.240.134.4 03/08 14:07
29F:→ yuanruo: 取當前sention最後一個cell indexPath122.116.161.187 03/08 19:02
30F:→ yuanruo: tableview.scrollToRowAtxxxx(122.116.161.187 03/08 19:04
31F:→ yuanruo: 但資料量大時reload後加個layoutIfNeeded122.116.161.187 03/08 19:10
32F:→ yuanruo: 或是回到main queue執行滾動函式122.116.161.187 03/08 19:10
33F:推 frank61003: 目前遇到的問題是刪掉貼文後,再次展開 60.248.161.187 03/10 11:45
34F:→ frank61003: 留言畫面(不同貼文)會重疊在一起 60.248.161.187 03/10 11:45
35F:→ frank61003: 這部分要從哪個方向下手呢? 60.248.161.187 03/10 11:46
36F:推 frank61003: 刪掉最上面一則貼文結果留言都往上跑 60.248.161.187 03/10 12:36
37F:→ frank61003: 一則,第二則按下去會跑第三則的留言XD 60.248.161.187 03/10 12:37
38F:推 frank61003: 看起來是datasource是外面data複製一 60.248.161.187 03/10 16:02
39F:→ frank61003: 份,兩邊資料都刪除同樣index就好了 60.248.161.187 03/10 16:02







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Boy-Girl站內搜尋

TOP