/************************************************************ * * Hyphenate CONFIDENTIAL * __________________ * Copyright (C) 2016 Hyphenate Inc. All rights reserved. * * NOTICE: All information contained herein is, and remains * the property of Hyphenate Inc. * Dissemination of this information or reproduction of this material * is strictly forbidden unless prior written permission is obtained * from Hyphenate Inc. */ #import #import "IModelChatCell.h" #import "IMessageModel.h" #import "EaseBubbleView.h" /** @brief 缩略图宽度(当缩略图宽度为0或者宽度大于高度时) */ #define kEMMessageImageSizeWidth 120 /** @brief 缩略图高度(当缩略图高度为0或者宽度小于高度时) */ #define kEMMessageImageSizeHeight 120 /** @brief 位置消息cell的高度 */ #define kEMMessageLocationHeight 95 /** @brief 语音消息cell的高度 */ #define kEMMessageVoiceHeight 23 extern CGFloat const EaseMessageCellPadding; typedef enum{ EaseMessageCellEvenVideoBubbleTap, /** @brief 视频消息cell点击 */ EaseMessageCellEventLocationBubbleTap, /** @brief 位置消息cell点击 */ EaseMessageCellEventImageBubbleTap, /** @brief 图片消息cell点击 */ EaseMessageCellEventAudioBubbleTap, /** @brief 语音消息cell点击 */ EaseMessageCellEventFileBubbleTap, /** @brief 文件消息cell点击 */ EaseMessageCellEventCustomBubbleTap, /** @brief 自定义gif图片消息cell点击 */ }EaseMessageCellTapEventType; @protocol EaseMessageCellDelegate; @interface EaseMessageCell : UITableViewCell { UIButton *_statusButton; UILabel *_hasRead; EaseBubbleView *_bubbleView; UIActivityIndicatorView *_activity; NSLayoutConstraint *_statusWidthConstraint; } @property (weak, nonatomic) id delegate; @property (nonatomic, strong) UIActivityIndicatorView *activity; @property (strong, nonatomic) UIImageView *avatarView; @property (strong, nonatomic) UILabel *nameLabel; @property (strong, nonatomic) UIButton *statusButton; @property (strong, nonatomic) UILabel *hasRead; /** @brief 气泡视图 */ @property (strong, nonatomic) EaseBubbleView *bubbleView; @property (strong, nonatomic) id model; /* * 状态按钮尺寸 */ @property (nonatomic) CGFloat statusSize UI_APPEARANCE_SELECTOR; //default 20; /* * 加载尺寸 */ @property (nonatomic) CGFloat activitySize UI_APPEARANCE_SELECTOR; //default 20; /* * 聊天气泡的最大宽度 */ @property (nonatomic) CGFloat bubbleMaxWidth UI_APPEARANCE_SELECTOR; //default 200; @property (nonatomic) UIEdgeInsets bubbleMargin UI_APPEARANCE_SELECTOR; //default UIEdgeInsetsMake(8, 0, 8, 0); @property (nonatomic) UIEdgeInsets leftBubbleMargin UI_APPEARANCE_SELECTOR; //default UIEdgeInsetsMake(8, 15, 8, 10); @property (nonatomic) UIEdgeInsets rightBubbleMargin UI_APPEARANCE_SELECTOR; //default UIEdgeInsetsMake(8, 10, 8, 15); /* * 发送者气泡图片 */ @property (strong, nonatomic) UIImage *sendBubbleBackgroundImage UI_APPEARANCE_SELECTOR; /* * 接收者气泡图片 */ @property (strong, nonatomic) UIImage *recvBubbleBackgroundImage UI_APPEARANCE_SELECTOR; /* * 消息显示字体 */ @property (nonatomic) UIFont *messageTextFont UI_APPEARANCE_SELECTOR; //default [UIFont systemFontOfSize:15]; /* * 消息显示颜色 */ @property (nonatomic) UIColor *messageTextColor UI_APPEARANCE_SELECTOR; //default [UIColor blackColor]; /* * 位置消息显示字体 */ @property (nonatomic) UIFont *messageLocationFont UI_APPEARANCE_SELECTOR; //default [UIFont systemFontOfSize:12]; /* * 位置消息显示颜色 */ @property (nonatomic) UIColor *messageLocationColor UI_APPEARANCE_SELECTOR; //default [UIColor whiteColor]; /* * 发送者语音消息播放图片 */ @property (nonatomic) NSArray *sendMessageVoiceAnimationImages UI_APPEARANCE_SELECTOR; /* * 接收者语音消息播放图片 */ @property (nonatomic) NSArray *recvMessageVoiceAnimationImages UI_APPEARANCE_SELECTOR; /* * 语音消息显示颜色 */ @property (nonatomic) UIColor *messageVoiceDurationColor UI_APPEARANCE_SELECTOR; //default [UIColor grayColor]; /* * 语音消息显示字体 */ @property (nonatomic) UIFont *messageVoiceDurationFont UI_APPEARANCE_SELECTOR; //default [UIFont systemFontOfSize:12]; /* * 语音消息显示宽度 */ @property (nonatomic) CGFloat voiceCellWidth UI_APPEARANCE_SELECTOR; //default 75; /* * 文件消息名称显示字体 */ @property (nonatomic) UIFont *messageFileNameFont UI_APPEARANCE_SELECTOR; //default [UIFont systemFontOfSize:13]; /* * 文件消息名称显示颜色 */ @property (nonatomic) UIColor *messageFileNameColor UI_APPEARANCE_SELECTOR; //default [UIColor blackColor]; /* * 文件消息显示字体 */ @property (nonatomic) UIFont *messageFileSizeFont UI_APPEARANCE_SELECTOR; //default [UIFont systemFontOfSize:11]; /* * 文件消息显示颜色 */ @property (nonatomic) UIColor *messageFileSizeColor UI_APPEARANCE_SELECTOR; //default [UIColor grayColor]; /* * @param cell * @param * @param 消息model */ - (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier model:(id)model; /* * * * @param 消息model * * @result */ + (NSString *)cellIdentifierWithModel:(id)model; /* * * * @param 消息model * * @result cell高度 */ + (CGFloat)cellHeightWithModel:(id)model; @end @protocol EaseMessageCellDelegate @optional /* * 消息点击回调 * * @param 消息model */ - (void)messageCellSelected:(id)model; /* * 状态按钮点击回调 * * @param 消息model * @param 当前cell */ - (void)statusButtonSelcted:(id)model withMessageCell:(EaseMessageCell*)messageCell; /* * 头像点击回调 * * @param 消息model */ - (void)avatarViewSelcted:(id)model; @end