我们做一个类似于微信的功能。双击tabBar(会话列表的tabBar)然后让会话列表滚动到有未读消息的那一行!
首先 是实现 tabBar 双击 ,这个可以在网上找一大堆!通信的话 我用的是通知 NSNotificationCenter 在双击指定的 tabBar 的时候发出通知!在对应的页面接受通知!切记 在退出的时候要 移除通知!!!!!
直接上代码:后面有图片
-(void)scrollToUnReadEvent:(NSNotification *)sender{
/* 接受到双击tabBar 通知 */
NSDictionary* info = sender.userInfo;
/* 记录是第几次双击 */
intclickTimes = [[infoobjectForKey:@"clickTimes"]intValue];
/* 判断如果点击的次数大于 有未读消息 的数组的个数 就把惦记次数置为1 */
if(clickTimes >self.indexArray.count) {
clickTimes =1;
}
/* 遍历目前的会话列表 找到消息类型有未读的消息 */
for(inti =0; i<self.dataProvider.dataList.count; i++) {
TUIConversationCellData*cellData = [self.dataArrayobjectAtIndex:i];
/* 判断如果消息有未读消息的就把这条消息的下标添加到下标数组里面 */
if(cellData.unreadCount>0) {
NSString* indexString = [NSStringstringWithFormat:@"%d",i];
[self.indexArrayaddObject:indexString];
}
}
/* 现在就是 在小于 未读数组的范围内 每点击一次就拿数组里的下标 */
NSIntegerselectIndex = [[self.indexArrayobjectAtIndex:clickTimes -1]intValue];
/* 滚动 */
NSIndexPath *indexPath = [NSIndexPathindexPathForRow:selectIndexinSection:0];
[self.tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionTop animated:YES];
}