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