看板 MacDev 關於我們 聯絡資訊
各位前輩大家好 小弟我想實現跟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
uranusjr: 用 reloadData 一定會卡, 只能手動 insert12/17 18:44
難道每個cell的高只能自己算了嗎Q_Q autolayout要整個拆掉了
yuanruo: 聊天室用tableview做的盡量不要用autolayout做12/17 21:35
yuanruo: 會有contentSize不準和一些問題12/17 21:36
yuanruo: 如果你之後要加些圖片或sticker時,不是單一純文字的聊天12/17 21:43
謝謝大大 目前完成度大概把Line有的基本功能都實現了 貼圖 影片 圖片 錄音 還有自己弄一個塗鴉牆 這些都是autolayout 但是今天需求就是要scroll到top的時候回add data 看來是大工程了= = ※ 編輯: s001582000 (125.227.150.100), 12/18/2015 12:29:43
nobody1: 回到top之前就要call了12/18 17:06
yuanruo: 用手算順序是這樣塞data進array 然後知道有幾筆是新的12/18 18:04
yuanruo: 之後自己組一個indexPath 用heightForRow取出新的高度12/18 18:05
yuanruo: 然後跟原來的Offset相減 最後reloadData 再設offset回去12/18 18:06
yuanruo: 當然你heightForRow那邊也是自己手算高度12/18 18:07
yuanruo: autolayout試看看reloadData完用scrollToRowAtIndexPath12/18 18:08
謝謝大大 我的做法也大致是這樣 只是如果scrollto row的話 會把遠原本的Animation中斷 但是不用這個的話Autolayout又很難算出高度 看來勢必不能用Autolayout了 謝謝大大 ※ 編輯: s001582000 (114.44.192.196), 12/18/2015 22:03:36
joeful6: try tableview insertRowsAtIndexPaths 05/19 16:15