iOS 简易的实现类似QQ好友菜单

uniapp+nvue实现仿微信App聊天应用 —— 成功实现好友聊天+语音视频通话功能 基于uniapp + nvue实现的uniapp仿微信App聊天应用 txim 实例项目,实现了以下功能。 1: 聊天会话管理 2: 好友列表 3: 文字、语音、视频、表情、位置等聊天消息收发 4: 一对一语音视频在线通话 技术实现 开发环境:HbuilderX + nodejs 技术框架:uniapp + vue2.x + node-sass 状态管理:Vuex 测试环境:App端(Android + IOS) 插件:Zhimi-TXIM、Zhimi-TRTCCalling 代码:. 阅读详情

使用tableview实现这种功能

需要有以下三个属性,省略很多代码,这里介绍核心代码。

//用于存放每一个好友

@property (nonatomic,strong)NSMutableArray * dataSource;

//用于记住组的展开和闭合状态

@property(nonatomic,strong)NSMutableArray * groupState;

@property (nonatomic,strong)UITableView * tableView;


初始化小组都是关闭

/*懒加载 用于记住组的展开和闭合状态(初始化为关闭状态)*/

- (NSMutableArray *)groupState

{

    if (!_groupState) {

        _groupState = [NSMutableArraynew];

        

        for (int i =0; i <self.dataSource.count; i++) {

//            [_groupState addObject:[NSNumber numberWithBool:NO]];

            //简写为

            [_groupStateaddObject:@NO];

        }

    }

    

    return_groupState;

}


/*制作假数据 datasource里面存放了几个数组,每个数组代表每个好友小组*/

- (NSMutableArray *)dataSource {

    if (!_dataSource) {

        _dataSource = [NSMutableArraynew];


        NSArray * pfp = [[NSBundlemainBundle] pathsForResourcesOfType:@"plist"inDirectory:nil];

        

        for (NSString * ppin pfp) {

            if ([pphasSuffix:@"Info.plist"]) {

                continue;

            }

            

            NSMutableArray * array = [NSMutableArrayarrayWithContentsOfFile:pp];

            

            

            [_dataSourceaddObject:array];

        }

    }



    return_dataSource;

}


#pragma - mark DataSource

/*返回有多少个好友分组*/

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView

{

    returnself.dataSource.count;

}

/*返回每个组有多少好友*/

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

{

   //当小组状态为关闭时,返回0个好友(即小组为关闭状态)

    if ([self.groupState[section]boolValue] == NO) {

        return0;

    }

    return [self.dataSource[section]count];

}


- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section

{

    UIView * view = [[UIViewalloc] initWithFrame:CGRectMake(0,0, 1,1)];

    view.backgroundColor = [UIColororangeColor];

    

    //实现折叠效果

    //1.在每一组的头上添加一个按钮,好友的展开关闭按钮

    UIButton * btn = [UIButtonbuttonWithType:UIButtonTypeSystem];

    btn.frame =CGRectMake(0,0, 50,50);

    [btn setTitle:@"➡️"forState:UIControlStateNormal];

    [btn addTarget:selfaction:@selector(btnClicked:)forControlEvents:UIControlEventTouchUpInside];

    btn.tag = section +100;

    [view addSubview:btn];

    

    //2.根据组的折叠状态,设置btn的指示方向

    if ([self.groupState[section]boolValue] == YES) {

        btn.transform =CGAffineTransformMakeRotation(M_PI/2.0);

    }

    return view;

}


/*小组展开关闭按钮点击事件*/

- (void)btnClicked:(UIButton *)btn

{

    //取到按钮所在的section的序号

    NSInteger sectionIndex = btn.tag -100;

    //修改groupState标记数组里面对应序号的Bool变量

    // 1.取出变量原来的值

    BOOL oldBool = [self.groupState[sectionIndex]boolValue];

    // 2. 将原来的值取反

    NSNumber * newValue =

    [NSNumbernumberWithBool:!oldBool];

    // 3. 将取反的值替换数组中对应序号的对象

    [self.groupStatereplaceObjectAtIndex:sectionIndexwithObject:newValue];

    

    //4.需要重新加载TableView

    //  通过调用UITableView的 reloadData方法,

  //    [self.tableView reloadData];


    //刷新指定的组,并且可以加上动画效果

    [self.tableViewreloadSections:[NSIndexSetindexSetWithIndex:sectionIndex] withRowAnimation:UITableViewRowAnimationFade];    

}


大致就是这样的思路,省略了一些代码,只是一个简单的demo。



uniapp(安卓 | 苹果) - 最新实现安卓、苹果app端将资源分享到微信、朋友圈、转发给好友、QQ、手机本地app应用,App平台端如何调用手机系统原生分享功能,图片音频视频文字文件文档在线分享 uni-app,安卓app,苹果app,手机app端,苹果ios,安卓Android,移动端app,分享,微信分享,qq分享,微信朋友圈,微信好友,转发,发送,vue2,vue3,App端调用手机的系统分享,分享功能,App端调用手机的系统分享,可分享到微信、朋友圈等,插件,微信appid,发送到微信,朋友圈,还有别的选项,分享到微信朋友圈和微信好友,无法调起分享面板,如何解决这个问题,plus.share.sendWithSystem,app分享到朋友和朋友圈,没有appid分享不了怎么办,uni.sha 阅读详情

相关推荐

iOS应用中使用ShareSDK实现社交分享功能教程

为了让分享内容在社交平台上有更好的展示效果,开发者可以使用OGP协议来控制网页内容的摘要和图片预览。OGP(Open Graph Protocol)是一种让网页变得对社交网络更友好的方式。通过在网页中添加特定的meta标签,可以指定分享时使用的图片、标题和描述等。-- 示例网页中的OGP标签配置 --><meta property="og:title" content="网页标题"><meta property="og:description" content="网页简短描述">

weixin_30021053的博客 1701

iOS开发中QQ好友列表下拉显示全部好友实现思路

在QQ的好友页面有一个点击各个分类,然后展示分类中所有好友的效果,今天就说一说实现该效果的一个思路。 这个页面肯定是需要一个UITableView的,在tableview的代理方法中要实现分区的一个方法,即要返回tableview的分区数。返回的分区数就是好友的分类数。 tableview中各个分区的行数就是各个好友分类中的好友数。显示各个好友分类的视图是各个分区的一个头视图。头视图会有一个点

梁森的博客 1126

IOS 实现QQ好友列表

利用表格视图中的HeaderView,简易的实现QQ的好友列表。

UITableView的折叠收缩和QQ好友分组效果

可折叠展开的tableView,QQ好友分组列表demo下载地址https://github.com/zhengwenming/ExpandTableView 原理分析:这个可以折叠的table,我们点击的是table的section,每个section下面都对应一个数组,点击section,就展开sction然后展示数组数据。每次点击section都要刷新当前点击的这个section,不用rel

文明的博客 1万+

CodeBlocks如何将英文环境改为中文

一、下载汉化包(链接如下) 链接:https://pan.baidu.com/s/166U9WGPbJXu2hyD7q9EiJQ 提取码:2333 二、选择路径 将汉化包中的文件(CodeBlocks.mo、zh_CN.mo、zh_CN.po)放到CodeBlocks安装路径下的​​​​​​CodeBlocks/share/CodeBlocks/locale/zh_CN文件夹中,路径中的文件夹没有就新建。 注:此处需严格按照要求来,切勿自定义文件夹名 三、内部调试 打开CodeBlocks,..

云隐雾匿的博客 2万+

SuccessFactors入门篇

SuccessFactors入门篇—— Employee Central(一)最近通过一个月左右的学习,拿到了SF EC(SuccessFactors Employee Central )模块SAP认证,所以打算把自己学习SF的整个过程以及相关资料和大家分享一下,相互切磋,共同进步。Employee Central简单了解Employee Central简单了解新的改变功能快捷键合理的创建标题,有...

qq_42288853的博客 1万+

iOS 模仿QQ侧滑菜单和UITabBar拖动动画

最近照着QQ做了一下,实现了一下侧滑菜单、自定义UITabBar、拖动TabBar的动画、设置各个页面是否支持旋转、是否隐藏状态栏、状态栏风格,使用swift实现,先看一下效果: 具体实现思路是:window的rootViewController,添加了两个childViewController:一个sideMenu,一个RootContentNavgationControoler,添加拖动手势,

concentrate_的专栏 4058

windows10系统上安装最新版mysql 8.0详细步骤

windows10系统上安装最新版mysql 8.0详细步骤

glei20的博客 6715

iOS对于UITableView的一些个人理解 QQ好友列表实例

前面几篇文章记录了UITableView的一些特性和使用,今天突然想要写一篇关于UITableView的个人理解。 UITableView是一个列表控件,但是在开发中,列表的样子是千奇百怪。每个产品都希望自己设计的app界面是独一的,有这自己的元素。比如:微信的朋友圈列表(动态高度),QQ好友列表(点击展示隐藏分组),京东的物品分类列表(瀑布流)等等。。。 面对这样复杂多变的设计,作为一个开发人员...

m0_37681833的博客 308

5分钟搞定单细胞marker基因气泡图:scDotPlot保姆级教程(含Seurat适配)

本文提供了一份详细的scDotPlot R包使用教程,帮助用户在5分钟内完成单细胞marker基因气泡图的绘制。教程涵盖环境准备、Seurat和SingleCellExperiment对象的适配处理、进阶可视化技巧及自动化报告生成,特别适合生物信息学新手和临床研究者快速掌握这一高效的可视化工具。

weixin_29047545的博客 261

【问题解决】Python 运行报错 `ModuleNotFoundError` 全网最全解决方案,一文搞定所有导包问题

本文全面解析Python中常见的ModuleNotFoundError和ImportError问题,提供从基础到高级的解决方案。文章首先分析问题原因,包括模块未安装、环境不一致、路径问题等,然后给出7种解决方案:安装缺失模块、检查Python环境、使用虚拟环境、添加搜索路径、相对导入、setup.py安装本地包和使用__init__.py。针对Jupyter Notebook、Docker容器等常见场景提供专门解决方案,并推荐使用requirements.txt、pipenv等预防措施。最后分享调试技巧,帮

博客 914

QQ分组,QQ侧滑菜单,右滑菜单

QQMenuQQ侧滑菜单,右滑菜单,QQ展开菜单,QQ好友分组GitHub: https://github.com/Zws-China/QQMenuPhotoShootHow To Use//右滑菜单 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launc

qq_26598077的博客 577

PCL 快速均匀下采样

快速均匀下采样 是一种点云降采样技术,通过设置采样步长来实现等距降采样,从而减少点的数量。用户可以通过指定步长,选择每隔一定数量的点采样一个点,这样可以在保持点云几何特性的同时,显著减少点的数量。

纵马踏花向自由 870

iOS 调用QQ客户端发起临时会话

一.前言: 前段时间项目中有个需求,在App内调用QQ客户端,在不是好友前提下,向指定的客服QQ发起临时会话,很简单的一个需求,但是实际实现起来却碰到很多问题. 1.QQ开发者平台,并没有找到App调用QQ客户端发起临时会话方法,(只提供了网页端接入方法) 2.网上搜到的一些方法,大部分都粗秒淡写,要么可以调用QQ客户端,不能成功发送消息,要么

H.A.N的博客 628

【100%通过率】华为od机试C卷【出差 / 员工派遣】C++ 实现

某公司部门需要派遣员工去国外做项目。现在,代号为 x 的国家和代号为 y 的国家分别需要 cntx 名和 cnty 名员工部门每个员工有一个员工号 (1,2,3,......),工号连续,从 1开始。部长派遣员工的规则:

MISAYAONE的博客 2193

DSI3接口介绍

DSI3(distributed system interface)分布式系统接口,是一种强大且通用的总线协议,旨在将多个遥感器和执行器互连到中央控制模块。在单总线中集成了电压信号、电流信号还有电源,甚至引用了3位状态机概念(反向数据),从逻辑0/1扩展到了0/1/2。

Airer_00的博客 4300

iOS仿QQ侧滑菜单、登录按钮动画、仿斗鱼直播APP、城市选择器、自动布局等源码

iOS精选源码 QQ侧滑菜单,右滑菜单,QQ展开菜单,QQ好友分组 登录按钮 3分钟快捷创建高性能轮播图 ScrollView嵌套ScrolloView(UITableView 、UICollectionView)解决方案 LLIconVersioning可以自动创建带有调试信息的app图标 保护App不闪退(JJException) ...

sunnyaigd830的博客 455

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

类似于 QQ长按弹出菜单视图 (主要是文字的复制、粘贴)

//长按触发的事件 - (void)longAction:(UILongPressGestureRecognizer *)sender { if (sender.state == UIGestureRecognizerStateBegan) { NSLog(@"长按手势已经触发"); //一定要调用这个方法 [self becomeFirst

wzhicsdn的博客 676

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

iOS项目开发实战——使用ShareSDK进行QQ和微信分享

ShareSDK是一款非常强大也非常方便的第三方分享API。在IOS平台上使用ShareSDK可以方便的把你的内容分享到十几个社交平台上,这里我们简单介绍下如何分享到QQ和微信。 (1)申请QQ平台和微信平台的APP ID和APP KEY。详见我的博客《成为腾讯开发者——如何使用QQ开放平台和微信开放平台》。 (2)进入ShareSdk的官网 http://mob.com/#/index  。

乞力马扎罗的雪CYF的博客 4161

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

如何找回删除的微信好友

在我们的日常生活中,有时候由于误删或者一气之下把好友给删除了,也有可能是自己被别人删除了,那这个时候又特别想找回来怎么办?相信大部分朋友会发现找的过程不是特别麻烦就是花费特别高。现在就分享几个简单方便找回微信好友的方法。重要提醒:如果你删除好友过后没有卸载过微信或者格式化过手机,换过手机什么的,那接着往下看,下面的方法适合...

weixin_40822919的博客 3990

关于QQ的相关代码收集整理

我个人整理的一些实用的QQ聊天代码,包括手机端和电脑端的,希望不用每次都重新去找。部分手机端的代码可以用在微信上面~

夜之寐 的技术博客 1万+

iOS App 调用QQ客户端,发起临时会话

前言:  前段时间项目中有个需求,在App内调用QQ客户端,向指定的客服QQ发起临时会话,很简单的一个需求,但是实际实现起来却碰到很多问题. 1.QQ开发者平台,并没有找到App 调用QQ客户端 发起临时会话方法,(只提供了网页端接入方法) 2.网上搜到的一些方法,大部分都粗秒淡写,要么可以调用QQ客户端,不能成功发送消息,要么是其他问题.   经过一段时间摸索,发现接入方法相当简单,现将接入方法分

iOS开发 851

iOS仿QQ侧滑菜单、登录按钮动画、仿斗鱼直播APP、城市选择器、自动布局等源码...

iOS精选源码 QQ侧滑菜单,右滑菜单,QQ展开菜单,QQ好友分组 登录按钮 3分钟快捷创建高性能轮播图 ScrollView嵌套ScrolloView(UITableView 、UICollectionView)解决方案 LLIconVersioning可以自动创建带有调试信息的app图标 保护App不闪退(JJException) 斗鱼直播-Swift4.0 swift获取后台返...

weixin_30770495的博客 240

iOS调用QQ客户端发起临时会话

点击上方“iOS开发”,选择“置顶公众号”关键时刻,第一时间送达!一.前言:前段时间项目中有个需求,在App内调用QQ客户端,在不是好友前提下,向指定的客服QQ发起临时会话,很简单的一个需求,但是实际实现起来却碰到很多问题.1.QQ开发者平台,并没有找到App调用QQ客户端发起临时会话方法,(只提供了网页端接入方法)2.网上搜到的一些方法,大部分都粗秒淡写,要么可以调用QQ客户端,不能成功发送消息

iOS_开发 696
上一篇: iOS开发便捷工具
下一篇: iOS 对于邮箱、电话号码、身份证等检查
winterLiao
博客等级 码龄10年 5粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值