拖到最底的时候,scrollview的contentOffset.y 是 contentSize.height - scroll.frame.size.height
创新互联是一家专业提供从江企业网站建设,专注与成都做网站、网站制作、H5高端网站建设、小程序制作等业务。10年已为从江众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。
可以使用 scrollView 的delegate方法来监测
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
if(scrollView.contentOffset.y scrollView.contentSize.height - scrollView.frame.size.height){
nslog(@"已经是最底了");
}
}
项目中涉及到需要跳转到QQ聊天界面,所以查了腾讯的文档,但是没有找到网上所说的地址: mqq://im/chat?chat_type=wpauin=%@version=1src_type=web ,
只在 qun.qq.com 找到了跳转QQ群的地址: mqqapi://card/show_pslcard?src_type=internalversion=1uin=%@key=%@card_type=groupsource=external 。希望了解的人指点一下
自定义方法:
UIMenuItem *share = [[UIMenuItem alloc] initWithTitle:@"分享"action:@selector(shareClick:)];
UIMenuItem *report = [[UIMenuItem alloc] initWithTitle:@"举报"action:@selector(report:)];
UIMenuController *menu = [UIMenuController sharedMenuController];
[menu setMenuItems:[NSArray arrayWithObjects:share, report, nil]];
[menu setTargetRect:cell.c_post_content.frame inView:cell.c_post_content.superview];
[menu setMenuVisible:YES animated:YES];
聊天界面一般包含:文字、语音、图片三大部分。
整体的我用的是UITableView,具体聊天的展示是用的cell,把所有视图都放到cell上用到的显示用不到的隐藏。
项目的的编写采用了MVC 模式。所有的界面布局都是在CSMessageModel中完成。先上效果图。
简单来说,我们要根据接收到的数据类型的不同来展示不同的东西。所以我们需要事先和服务器定义好接口协议并把他封装成一个Model。另外还要有时间,以及自己和他人的区别。这些也要一起定义。我的Model类型如下,大家可以根据自己的需要进行添加和删除。
然后就是根据上面的类型去定义各自的frame,根据自己的需要进行添加和删除。
CSMessageModel.m 中实现Frame初始化。举例如下,具体的可以查看demo。
然后就是自定义cell
直接传Model进来
重点在要根据Model去计算布局
最后在调用
至此聊天界面完成。
另外添加了表情和语音。
注:发送图片和语音的时候,服务器我们这里用了base64进行的加密。转换成了二进制流。图片和语音要问清楚服务器支持多大的。要进行压缩。
demo
1.目前只有ios版本的微信更新了折叠置顶聊天功能,首先需要将微信升级到8.0.8及以上版本,然后打开微信app,
2.当微信的置顶聊天窗口达到或超过9个时才会进行折叠,进入微信首页后即可看到置顶聊天底部的“折叠置顶聊天”,点击三条杠即可折叠置顶聊天内容了。
3.总结:
第一步:首先需要将ios版本微信升级到8.0.8及以上版本,然后打开微信app,
第二步:进入微信首页后即可看到置顶聊天底部的“折叠置顶聊天”,点击三条杠即可折叠置顶聊天内容了。
备注:隐藏置顶聊天后,消息列表的最上方就会有折叠置顶聊天的显示,点击三条杠即可显示被隐藏的置顶聊天了。