From 7b02207537d35bfa1714bf8beafc921f717d100a Mon Sep 17 00:00:00 2001
From: 单军华
Date: Wed, 11 Jul 2018 10:47:42 +0800
Subject: [PATCH] 首次上传

---
 screendisplay/Pods/EaseUI/EaseUI/EMUIKit/Views/conversationList/EaseConversationCell.m |  303 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 303 insertions(+), 0 deletions(-)

diff --git a/screendisplay/Pods/EaseUI/EaseUI/EMUIKit/Views/conversationList/EaseConversationCell.m b/screendisplay/Pods/EaseUI/EaseUI/EMUIKit/Views/conversationList/EaseConversationCell.m
new file mode 100755
index 0000000..54a4e49
--- /dev/null
+++ b/screendisplay/Pods/EaseUI/EaseUI/EMUIKit/Views/conversationList/EaseConversationCell.m
@@ -0,0 +1,303 @@
+/************************************************************
+ *  * 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 "EaseConversationCell.h"
+
+#if ENABLE_LITE == 1
+#import <HyphenateLite/EMConversation.h>
+#else
+#import <Hyphenate/EMConversation.h>
+#endif
+#import "UIImageView+WebCache.h"
+
+CGFloat const EaseConversationCellPadding = 10;
+
+@interface EaseConversationCell()
+
+@property (nonatomic) NSLayoutConstraint *titleWithAvatarLeftConstraint;
+
+@property (nonatomic) NSLayoutConstraint *titleWithoutAvatarLeftConstraint;
+
+@property (nonatomic) NSLayoutConstraint *detailWithAvatarLeftConstraint;
+
+@property (nonatomic) NSLayoutConstraint *detailWithoutAvatarLeftConstraint;
+
+@end
+
+@implementation EaseConversationCell
+
++ (void)initialize
+{
+    // UIAppearance Proxy Defaults
+    /** @brief ������������ */
+    EaseConversationCell *cell = [self appearance];
+    cell.titleLabelColor = [UIColor blackColor];
+    cell.titleLabelFont = [UIFont systemFontOfSize:17];
+    cell.detailLabelColor = [UIColor lightGrayColor];
+    cell.detailLabelFont = [UIFont systemFontOfSize:15];
+    cell.timeLabelColor = [UIColor blackColor];
+    cell.timeLabelFont = [UIFont systemFontOfSize:13];
+}
+
+- (instancetype)initWithStyle:(UITableViewCellStyle)style
+              reuseIdentifier:(NSString *)reuseIdentifier
+{
+    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
+    if (self) {
+        _showAvatar = YES;
+        [self _setupSubview];
+    }
+    
+    return self;
+}
+
+#pragma mark - private layout subviews
+
+/*!
+ @method
+ @brief ������������
+ @discussion
+ @return
+ */
+- (void)_setupSubview
+{
+    self.accessibilityIdentifier = @"table_cell";
+
+    _avatarView = [[EaseImageView alloc] init];
+    _avatarView.translatesAutoresizingMaskIntoConstraints = NO;
+    [self.contentView addSubview:_avatarView];
+    
+    _timeLabel = [[UILabel alloc] init];
+    _timeLabel.translatesAutoresizingMaskIntoConstraints = NO;
+    _timeLabel.font = _timeLabelFont;
+    _timeLabel.textColor = _timeLabelColor;
+    _timeLabel.textAlignment = NSTextAlignmentRight;
+    _timeLabel.backgroundColor = [UIColor clearColor];
+    [self.contentView addSubview:_timeLabel];
+    
+    _titleLabel = [[UILabel alloc] init];
+    _titleLabel.accessibilityIdentifier = @"title";
+    _titleLabel.translatesAutoresizingMaskIntoConstraints = NO;
+    _titleLabel.numberOfLines = 1;
+    _titleLabel.backgroundColor = [UIColor clearColor];
+    _titleLabel.font = _titleLabelFont;
+    _titleLabel.textColor = _titleLabelColor;
+    [self.contentView addSubview:_titleLabel];
+    
+    _detailLabel = [[UILabel alloc] init];
+    _detailLabel.translatesAutoresizingMaskIntoConstraints = NO;
+    _detailLabel.backgroundColor = [UIColor clearColor];
+    _detailLabel.font = _detailLabelFont;
+    _detailLabel.textColor = _detailLabelColor;
+    [self.contentView addSubview:_detailLabel];
+    
+    [self _setupAvatarViewConstraints];
+    [self _setupTimeLabelConstraints];
+    [self _setupTitleLabelConstraints];
+    [self _setupDetailLabelConstraints];
+}
+
+#pragma mark - Setup Constraints
+
+/*!
+ @method
+ @brief ������avatarView���������
+ @discussion
+ @return
+ */
+- (void)_setupAvatarViewConstraints
+{
+    [self addConstraint:[NSLayoutConstraint constraintWithItem:self.avatarView attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.contentView attribute:NSLayoutAttributeTop multiplier:1.0 constant:EaseConversationCellPadding]];
+    [self addConstraint:[NSLayoutConstraint constraintWithItem:self.avatarView attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.contentView attribute:NSLayoutAttributeBottom multiplier:1.0 constant:-EaseConversationCellPadding]];
+    [self addConstraint:[NSLayoutConstraint constraintWithItem:self.avatarView attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.contentView attribute:NSLayoutAttributeLeft multiplier:1.0 constant:EaseConversationCellPadding]];
+    [self addConstraint:[NSLayoutConstraint constraintWithItem:self.avatarView attribute:NSLayoutAttributeCenterY relatedBy:NSLayoutRelationEqual toItem:self.contentView attribute:NSLayoutAttributeCenterY multiplier:1.0 constant:0]];
+    [self addConstraint:[NSLayoutConstraint constraintWithItem:self.avatarView attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:self.avatarView attribute:NSLayoutAttributeHeight multiplier:1.0 constant:0]];
+}
+
+/*!
+ @method
+ @brief ������timeLabel���������
+ @discussion
+ @return
+ */
+- (void)_setupTimeLabelConstraints
+{
+    [self addConstraint:[NSLayoutConstraint constraintWithItem:self.timeLabel attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.contentView attribute:NSLayoutAttributeTop multiplier:1.0 constant:EaseConversationCellPadding]];
+    [self addConstraint:[NSLayoutConstraint constraintWithItem:self.timeLabel attribute:NSLayoutAttributeRight relatedBy:NSLayoutRelationEqual toItem:self.contentView attribute:NSLayoutAttributeRight multiplier:1.0 constant:-EaseConversationCellPadding]];
+    
+    [self addConstraint:[NSLayoutConstraint constraintWithItem:self.timeLabel attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:self.contentView attribute:NSLayoutAttributeHeight multiplier:0.5 constant:0]];
+}
+
+/*!
+ @method
+ @brief ������titleLabel���������
+ @discussion
+ @return
+ */
+- (void)_setupTitleLabelConstraints
+{
+    [self addConstraint:[NSLayoutConstraint constraintWithItem:self.titleLabel attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.contentView attribute:NSLayoutAttributeTop multiplier:1.0 constant:EaseConversationCellPadding]];
+    [self addConstraint:[NSLayoutConstraint constraintWithItem:self.titleLabel attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:self.contentView attribute:NSLayoutAttributeHeight multiplier:0.5 constant:-EaseConversationCellPadding]];
+    [self addConstraint:[NSLayoutConstraint constraintWithItem:self.titleLabel attribute:NSLayoutAttributeRight relatedBy:NSLayoutRelationEqual toItem:self.timeLabel attribute:NSLayoutAttributeLeft multiplier:1.0 constant:-EaseConversationCellPadding]];
+    
+    self.titleWithAvatarLeftConstraint = [NSLayoutConstraint constraintWithItem:self.titleLabel attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.avatarView attribute:NSLayoutAttributeRight multiplier:1.0 constant:EaseConversationCellPadding];
+    self.titleWithoutAvatarLeftConstraint = [NSLayoutConstraint constraintWithItem:self.titleLabel attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.contentView attribute:NSLayoutAttributeLeft multiplier:1.0 constant:EaseConversationCellPadding];
+    [self addConstraint:self.titleWithAvatarLeftConstraint];
+}
+
+/*!
+ @method
+ @brief ������detailLabel���������
+ @discussion
+ @return
+ */
+- (void)_setupDetailLabelConstraints
+{
+    [self addConstraint:[NSLayoutConstraint constraintWithItem:self.detailLabel attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.titleLabel attribute:NSLayoutAttributeBottom multiplier:1.0 constant:0]];
+    [self addConstraint:[NSLayoutConstraint constraintWithItem:self.detailLabel attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.contentView attribute:NSLayoutAttributeBottom multiplier:1.0 constant:-EaseConversationCellPadding]];
+    [self addConstraint:[NSLayoutConstraint constraintWithItem:self.detailLabel attribute:NSLayoutAttributeRight relatedBy:NSLayoutRelationEqual toItem:self.contentView attribute:NSLayoutAttributeRight multiplier:1.0 constant:-EaseConversationCellPadding]];
+    
+    self.detailWithAvatarLeftConstraint = [NSLayoutConstraint constraintWithItem:self.detailLabel attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.avatarView attribute:NSLayoutAttributeRight multiplier:1.0 constant:EaseConversationCellPadding];
+    self.detailWithoutAvatarLeftConstraint = [NSLayoutConstraint constraintWithItem:self.detailLabel attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.contentView attribute:NSLayoutAttributeLeft multiplier:1.0 constant:EaseConversationCellPadding];
+    [self addConstraint:self.detailWithAvatarLeftConstraint];
+}
+
+#pragma mark - setter
+
+- (void)setShowAvatar:(BOOL)showAvatar
+{
+    if (_showAvatar != showAvatar) {
+        _showAvatar = showAvatar;
+        self.avatarView.hidden = !showAvatar;
+        if (_showAvatar) {
+            [self removeConstraint:self.titleWithoutAvatarLeftConstraint];
+            [self removeConstraint:self.detailWithoutAvatarLeftConstraint];
+            [self addConstraint:self.titleWithAvatarLeftConstraint];
+            [self addConstraint:self.detailWithAvatarLeftConstraint];
+        }
+        else{
+            [self removeConstraint:self.titleWithAvatarLeftConstraint];
+            [self removeConstraint:self.detailWithAvatarLeftConstraint];
+            [self addConstraint:self.titleWithoutAvatarLeftConstraint];
+            [self addConstraint:self.detailWithoutAvatarLeftConstraint];
+        }
+    }
+}
+
+- (void)setModel:(id<IConversationModel>)model
+{
+    _model = model;
+    
+    if ([_model.title length] > 0) {
+        self.titleLabel.text = _model.title;
+    }
+    else{
+        self.titleLabel.text = _model.conversation.conversationId;
+    }
+    
+    if (self.showAvatar) {
+        if ([_model.avatarURLPath length] > 0){
+            [self.avatarView.imageView sd_setImageWithURL:[NSURL URLWithString:_model.avatarURLPath] placeholderImage:_model.avatarImage];
+        } else {
+            if (_model.avatarImage) {
+                self.avatarView.image = _model.avatarImage;
+            }
+        }
+    }
+    
+    if (_model.conversation.unreadMessagesCount == 0) {
+        _avatarView.showBadge = NO;
+    }
+    else{
+        _avatarView.showBadge = YES;
+        _avatarView.badge = _model.conversation.unreadMessagesCount;
+    }
+}
+
+- (void)setTitleLabelFont:(UIFont *)titleLabelFont
+{
+    _titleLabelFont = titleLabelFont;
+    _titleLabel.font = _titleLabelFont;
+}
+
+- (void)setTitleLabelColor:(UIColor *)titleLabelColor
+{
+    _titleLabelColor = titleLabelColor;
+    _titleLabel.textColor = _titleLabelColor;
+}
+
+- (void)setDetailLabelFont:(UIFont *)detailLabelFont
+{
+    _detailLabelFont = detailLabelFont;
+    _detailLabel.font = _detailLabelFont;
+}
+
+- (void)setDetailLabelColor:(UIColor *)detailLabelColor
+{
+    _detailLabelColor = detailLabelColor;
+    _detailLabel.textColor = _detailLabelColor;
+}
+
+- (void)setTimeLabelFont:(UIFont *)timeLabelFont
+{
+    _timeLabelFont = timeLabelFont;
+    _timeLabel.font = _timeLabelFont;
+}
+
+- (void)setTimeLabelColor:(UIColor *)timeLabelColor
+{
+    _timeLabelColor = timeLabelColor;
+    _timeLabel.textColor = _timeLabelColor;
+}
+
+#pragma mark - class method
+
+/*!
+ @method
+ @brief ������cell���������������
+ @discussion
+ @param model   ������model
+ @return ������cell���������������
+ */
++ (NSString *)cellIdentifierWithModel:(id)model
+{
+    return @"EaseConversationCell";
+}
+
+/*!
+ @method
+ @brief ������cell���������
+ @discussion
+ @param model   ������model
+ @return  ������cell���������
+ */
++ (CGFloat)cellHeightWithModel:(id)model
+{
+    return EaseConversationCellMinHeight;
+}
+
+- (void)setSelected:(BOOL)selected animated:(BOOL)animated
+{
+    [super setSelected:selected animated:animated];
+    if (_avatarView.badge) {
+        _avatarView.badgeBackgroudColor = [UIColor redColor];
+    }
+}
+
+-(void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated{
+    [super setHighlighted:highlighted animated:animated];
+    if (_avatarView.badge) {
+        _avatarView.badgeBackgroudColor = [UIColor redColor];
+    }
+}
+
+@end

--
Gitblit v1.8.0