You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
126 lines
3.6 KiB
126 lines
3.6 KiB
// |
|
// XHMessageTableViewCell.h |
|
// MessageDisplayExample |
|
// |
|
// Created by HUAJIE-1 on 14-4-24. |
|
// Copyright (c) 2014年 嗨,我是曾宪华(@xhzengAIB),曾加入YY Inc.担任高级移动开发工程师,拍立秀App联合创始人,热衷于简洁、而富有理性的事物 QQ:543413507 主页:http://zengxianhua.com All rights reserved. |
|
// |
|
|
|
#import <UIKit/UIKit.h> |
|
|
|
#import "XHBaseTableViewCell.h" |
|
#import "XHConfigurationHelper.h" |
|
|
|
#import "XHMessageBubbleView.h" |
|
#import "UIView+XHRemoteImage.h" |
|
|
|
#import "LKBadgeView.h" |
|
|
|
@class XHMessageTableViewCell; |
|
|
|
@protocol XHMessageTableViewCellDelegate <NSObject> |
|
|
|
@optional |
|
/** |
|
* 点击多媒体消息的时候统一触发这个回调 |
|
* |
|
* @param message 被操作的目标消息Model |
|
* @param indexPath 该目标消息在哪个IndexPath里面 |
|
* @param messageTableViewCell 目标消息在该Cell上 |
|
*/ |
|
- (void)multiMediaMessageDidSelectedOnMessage:(id <XHMessageModel>)message atIndexPath:(NSIndexPath *)indexPath onMessageTableViewCell:(XHMessageTableViewCell *)messageTableViewCell; |
|
|
|
/** |
|
* 双击文本消息,触发这个回调 |
|
* |
|
* @param message 被操作的目标消息Model |
|
* @param indexPath 该目标消息在哪个IndexPath里面 |
|
*/ |
|
- (void)didDoubleSelectedOnTextMessage:(id <XHMessageModel>)message atIndexPath:(NSIndexPath *)indexPath; |
|
|
|
/** |
|
* 点击消息发送者的头像回调方法 |
|
* |
|
* @param indexPath 该目标消息在哪个IndexPath里面 |
|
*/ |
|
- (void)didSelectedAvatarOnMessage:(id <XHMessageModel>)message atIndexPath:(NSIndexPath *)indexPath; |
|
|
|
/** |
|
* Menu Control Selected Item |
|
* |
|
* @param bubbleMessageMenuSelecteType 点击item后,确定点击类型 |
|
*/ |
|
- (void)menuDidSelectedAtBubbleMessageMenuSelecteType:(XHBubbleMessageMenuSelecteType)bubbleMessageMenuSelecteType; |
|
|
|
@end |
|
|
|
@interface XHMessageTableViewCell : XHBaseTableViewCell |
|
|
|
@property (nonatomic, weak) id <XHMessageTableViewCellDelegate> delegate; |
|
|
|
/** |
|
* 自定义多媒体消息内容View |
|
*/ |
|
@property (nonatomic, weak, readonly) XHMessageBubbleView *messageBubbleView; |
|
|
|
/** |
|
* 头像按钮 |
|
*/ |
|
@property (nonatomic, weak, readonly) UIButton *avatarButton; |
|
|
|
/** |
|
* 用户名标签 |
|
*/ |
|
@property (nonatomic, weak, readonly) UILabel *userNameLabel; |
|
|
|
/** |
|
* 时间轴Label |
|
*/ |
|
@property (nonatomic, weak, readonly) LKBadgeView *timestampLabel; |
|
|
|
/** |
|
* Cell所在的位置,用于Cell delegate回调 |
|
*/ |
|
@property (nonatomic, strong) NSIndexPath *indexPath; |
|
|
|
/** |
|
* 获取消息类型 |
|
* |
|
* @return 返回消息类型,比如是发送消息,又或者是接收消息 |
|
*/ |
|
- (XHBubbleMessageType)bubbleMessageType; |
|
|
|
/** |
|
* 初始化Cell的方法,必须先调用这个,不然不会初始化显示控件 |
|
* |
|
* @param message 需显示的目标消息Model |
|
* @param displayTimestamp 预先告知是否需要显示时间轴Label |
|
* @param cellIdentifier 重用Cell的标识 |
|
* |
|
* @return 返回消息Cell对象 |
|
*/ |
|
- (instancetype)initWithMessage:(id <XHMessageModel>)message |
|
displaysTimestamp:(BOOL)displayTimestamp |
|
reuseIdentifier:(NSString *)cellIdentifier; |
|
|
|
/** |
|
* 根据消息Model配置Cell的显示内容 |
|
* |
|
* @param message 目标消息Model |
|
* @param displayTimestamp 配置的时候告知是否需要显示时间轴Label |
|
*/ |
|
- (void)configureCellWithMessage:(id <XHMessageModel>)message |
|
displaysTimestamp:(BOOL)displayTimestamp; |
|
|
|
/** |
|
* 根据消息Model计算Cell的高度 |
|
* |
|
* @param message 目标消息Model |
|
* @param displayTimestamp 是否显示时间轴Label |
|
* |
|
* @return 返回Cell所需要的高度 |
|
*/ |
|
+ (CGFloat)calculateCellHeightWithMessage:(id <XHMessageModel>)message |
|
displaysTimestamp:(BOOL)displayTimestamp; |
|
|
|
@end
|
|
|