[問題] 關於Line的聊天室 滑到頂端增陣列數量

看板MacDev作者 (仁傑)時間9年前 (2015/12/17 18:10), 9年前編輯推噓1(1010)
留言11則, 4人參與, 最新討論串1/1
各位前輩大家好 小弟我想實現跟Line一樣 一個聊天室 滑到頂端之後增加資料數量 並且 insert Rows 同時ContentOffset 也要隨著數量增加 使用者看到的畫面不會跳動 小弟做法是UITableView 配合autolayout的cell return height 也是用 UITableViewAutomaticDimension 用insert row的話 高會因為還沒算好 會 導致 contentOffset跳動 所以只能用reloadData 拼拼湊湊下 把func放在scrollViewDidEndDecelerating 完全不能像Line的Scroll方式 一直滑一直滑都不會卡頓卡頓的 Line的聊天室大概是往哪個方向 有前輩可以指點一下嗎 /////////////////////////////// hi 我是原Po 原來在swift裡面 contentOffset = CGPoint 跟 setContentOffset(CGPoint) 是不一樣的事情 後者會把Animation中斷 感謝各位 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.227.150.100 ※ 文章網址: https://www.ptt.cc/bbs/MacDev/M.1450347058.A.14B.html

12/17 18:44, , 1F
用 reloadData 一定會卡, 只能手動 insert
12/17 18:44, 1F
難道每個cell的高只能自己算了嗎Q_Q autolayout要整個拆掉了

12/17 21:35, , 2F
聊天室用tableview做的盡量不要用autolayout做
12/17 21:35, 2F

12/17 21:36, , 3F
會有contentSize不準和一些問題
12/17 21:36, 3F

12/17 21:43, , 4F
如果你之後要加些圖片或sticker時,不是單一純文字的聊天
12/17 21:43, 4F
謝謝大大 目前完成度大概把Line有的基本功能都實現了 貼圖 影片 圖片 錄音 還有自己弄一個塗鴉牆 這些都是autolayout 但是今天需求就是要scroll到top的時候回add data 看來是大工程了= = ※ 編輯: s001582000 (125.227.150.100), 12/18/2015 12:29:43

12/18 17:06, , 5F
回到top之前就要call了
12/18 17:06, 5F

12/18 18:04, , 6F
用手算順序是這樣塞data進array 然後知道有幾筆是新的
12/18 18:04, 6F

12/18 18:05, , 7F
之後自己組一個indexPath 用heightForRow取出新的高度
12/18 18:05, 7F

12/18 18:06, , 8F
然後跟原來的Offset相減 最後reloadData 再設offset回去
12/18 18:06, 8F

12/18 18:07, , 9F
當然你heightForRow那邊也是自己手算高度
12/18 18:07, 9F

12/18 18:08, , 10F
autolayout試看看reloadData完用scrollToRowAtIndexPath
12/18 18:08, 10F
謝謝大大 我的做法也大致是這樣 只是如果scrollto row的話 會把遠原本的Animation中斷 但是不用這個的話Autolayout又很難算出高度 看來勢必不能用Autolayout了 謝謝大大 ※ 編輯: s001582000 (114.44.192.196), 12/18/2015 22:03:36

05/19 16:15, , 11F
try tableview insertRowsAtIndexPaths
05/19 16:15, 11F
文章代碼(AID): #1MSeeo5B (MacDev)
文章代碼(AID): #1MSeeo5B (MacDev)