我通过提供xml输入来获取来自.net webserver的消息的图像。
工作正常。
我每3秒发送一次请求,如果有任何新消息和图像,我只需将这些消息和图像添加到数组中并重新加载表视图。
这也没关系,但我需要的是当我重新加载表格视图时,通过平滑滚动现有行,将在表格视图上显示新消息。
与推特相同。
任何人都可以帮助我。
提前感谢你。
答案 0 :(得分:0)
如果您知道新添加的行的indexPath
,则可以使用UITableView
的以下函数向上滚动到带动画的新行(平滑效果)。
- (void)scrollToRowAtIndexPath:(NSIndexPath *)indexPath atScrollPosition:(UITableViewScrollPosition)scrollPosition animated:(BOOL)animated
答案 1 :(得分:0)
而不是完全重新加载表,你应该调用insertRowsAtIndexPaths:withRowAnimation:
第二个选项可让您指定动画的方式
(这也比每次重新加载所有数据更有效)
您可以执行以下操作: (这使得在数据已经加载到数据源对象之后将调用recievedImageFrom服务器的假设。此外,myDataSourceArray是为表存储数据的数组,myTableView是UITableView。
-(void)recievedImageFromServer
{
NSUInteger row = [myDataSourceArray count]-1; // This can also be set to 0 if you want
// to insert at the top of the table
NSIndexPath* newIndex = [NSIndexPath indexPathWithIndex:row];
[myTableView insertRowsAtIndexPaths:[NSArray arrayWithObject:newIndex]
withRowAnimation:UITableViewRowAnimationTop];
}
然后它将从其数据源请求单元格。