| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222 |
- /************************************************************
- * * 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 <UIKit/UIKit.h>
- #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<IModelChatCell>
- {
- UIButton *_statusButton;
- UILabel *_hasRead;
- EaseBubbleView *_bubbleView;
- UIActivityIndicatorView *_activity;
-
- NSLayoutConstraint *_statusWidthConstraint;
- }
- @property (weak, nonatomic) id<EaseMessageCellDelegate> 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<IMessageModel> 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<IMessageModel>)model;
- /*
- *
- *
- * @param 消息model
- *
- * @result
- */
- + (NSString *)cellIdentifierWithModel:(id<IMessageModel>)model;
- /*
- *
- *
- * @param 消息model
- *
- * @result cell高度
- */
- + (CGFloat)cellHeightWithModel:(id<IMessageModel>)model;
- @end
- @protocol EaseMessageCellDelegate <NSObject>
- @optional
- /*
- * 消息点击回调
- *
- * @param 消息model
- */
- - (void)messageCellSelected:(id<IMessageModel>)model;
- /*
- * 状态按钮点击回调
- *
- * @param 消息model
- * @param 当前cell
- */
- - (void)statusButtonSelcted:(id<IMessageModel>)model withMessageCell:(EaseMessageCell*)messageCell;
- /*
- * 头像点击回调
- *
- * @param 消息model
- */
- - (void)avatarViewSelcted:(id<IMessageModel>)model;
- @end
|