如何实现双击文本消息放大

程序员小五
• 阅读 505

如何实现双击文本消息放大

1、需要先创建一个 RCTextMessageCell 的 category 。添加一个代理

@property(nonatomic, weak) id delegate

和其代理方法

(void)doubleTapTextMessage:(RCMessageModel *)model; 2、在 category 中重写 - (void)initialize 方法,添加手势。并将代理抛出去。

3、在会话页面实现这个代理方法,例子如下:

  • (void)doubleTapTextMessage:(RCMessageModel *)model {

//解决发送文本消息,里面双击刚发出的消息,进入查看页面,再退出查看页面,文本消息长按没有menuItem的问题

[self.chatSessionInputBarControl resetToDefaultStatus];

[self.chatSessionInputBarControl resignFirstResponder];

if ([model.content isMemberOfClass:[RCTextMessage class]]) {

RCTextMessage *msg = (RCTextMessage *)model.content;

MagnifyMessageViewController *magnifyMessageVC = [[MagnifyMessageViewController alloc] init];

magnifyMessageVC.message = msg.content;

magnifyMessageVC.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;

[self presentViewController:magnifyMessageVC animated:YES completion:nil];

}

}

MagnifyMessageViewController这个VC是自己实现一个VC,主要包括一个textView来展示文本消息,开发者可以自己来实现

附: category 的代码例子

RCTextMessageCell+RCEDoubleTapGesture.m 详情查看:https://www.rongcloud.cn/?utm_source=SEO&utm_term=helloworld

点赞
收藏
评论区
推荐文章
美凌格栋栋酱 美凌格栋栋酱
9个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Wesley13 Wesley13
4年前
UITableView 中 didSelectRowAtIndexPath 手势冲突或者双击事件处理
实现双击事件的方法(void)tableView:(UITableView)tableViewdidSelectRowAtIndexPath:(NSIndexPath)indexPath{NSUIntegercurrentNSDatedatetimeIntervalSince1970
Wesley13 Wesley13
4年前
JDK动态代理和Cglib的动态代理
最简单的是静态代理方法,即代理模式,这里就不多啰嗦了。。重点说一下JDK的动态代理和Cglib的动态代理吧先说JDK的,需要被代理的类需要有接口,否则无法实现package proxy.dynamic;public interface IBook {void add();}实现接口
Stella981 Stella981
4年前
MQ对比之RabbitMQ & Redis
消息队列选择:RabbitMQ&RedisRabbitMQRabbitMQ是一个由erlang开发的AMQP(AdvancedMessageQueue)的开源实现的产品,RabbitMQ是一个消息代理,从“生产者”接收消息并传递消息至“消费者”,期间可根据规则路由、缓存、持久化消息。“生产者”也即message
Easter79 Easter79
4年前
SVG
1.SVG  图表,动效ScalableVectorGraphics 可缩放矢量图形 是一种用来描述二维矢量图形的XML标记语言。SVG面向图形,HTML面向文本。2.SVG和Canvas的区别  Canvas做图是在画布上通过js来控制动态  SVG是通过标签来实现的  SVG放大之后不会失真,Canvas放大后会失
Wesley13 Wesley13
4年前
AOP的自动代理
Spring的aop机制提供两类方式实现类代理。一种是单个代理,一种是自动代理。单个代理通过ProxyFactoryBean来实现(就如上面的配置)。自动代理:自动代理能够让切面定义来决定那个bean需要代理,不需要我们为特定的bean明确的创建代理从而提供一个更完整的aop实现通过BeanNameAutoProxyCreator或者Defaul
Stella981 Stella981
4年前
SVG
1.SVG  图表,动效ScalableVectorGraphics 可缩放矢量图形 是一种用来描述二维矢量图形的XML标记语言。SVG面向图形,HTML面向文本。2.SVG和Canvas的区别  Canvas做图是在画布上通过js来控制动态  SVG是通过标签来实现的  SVG放大之后不会失真,Canvas放大后会失
Wesley13 Wesley13
4年前
JDK动态代理的简单实现
1\.先理一下动态代理实现的思路:    实现功能:自己定义一个类Proxy,通过Proxy的静态方法newProxyInstance(Class<Tintface,InvocationHandlerh)返回代理对象, intface:被代理类的接口对象, h:InvocationHandler的实例对象    1).声明一段动
Stella981 Stella981
4年前
Http代理穿透
原理HTTP代理服务器中能够提供一种HTTPCONNECT代理服务,能够允许用户建立TCP连接到任何端口。通过CONNECT方法穿透代理的实现方法为:CONNECT代理服务器的代理端口(如:8080);如果成功返回就可以按照正常的Socket进行通讯。当然在此之前需要先获得代理相关的信息。如何获取HTTP代理相关信息程序中是通过
崇恩圣帝 崇恩圣帝
1年前
使用机器学习识别文本验证码的实现方法
在网络应用中,验证码常用于防止恶意机器人或自动程序对网站进行攻击。识别文本验证码是一个常见的问题,本文将介绍如何使用机器学习方法来实现这一目标。1.文本验证码识别方法文本验证码通常包含英文和数字字符,识别文本验证码的一种常见方法是使用图像处理和机器学习技术