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

作者: s001582000 (仁傑)   2015-12-17 18:10:55
各位前輩大家好
小弟我想實現跟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中斷
感謝各位
作者: uranusjr (←這人是超級笨蛋)   2015-12-17 18:44:00
用 reloadData 一定會卡, 只能手動 insert
作者: yuanruo (罪を憎んで人を憎まず)   2015-12-17 21:35:00
聊天室用tableview做的盡量不要用autolayout做會有contentSize不準和一些問題如果你之後要加些圖片或sticker時,不是單一純文字的聊天
作者: nobody1 (無事家中坐)   2015-12-18 17:06:00
回到top之前就要call了
作者: yuanruo (罪を憎んで人を憎まず)   2015-12-18 18:04:00
用手算順序是這樣塞data進array 然後知道有幾筆是新的之後自己組一個indexPath 用heightForRow取出新的高度然後跟原來的Offset相減 最後reloadData 再設offset回去當然你heightForRow那邊也是自己手算高度autolayout試看看reloadData完用scrollToRowAtIndexPath

Links booklink

Contact Us: admin [ a t ] ucptt.com