作者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/cn.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