WFCUConversationSettingMemberCell.m 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. //
  2. // ConversationSettingMemberCell.m
  3. // WFChat UIKit
  4. //
  5. // Created by WF Chat on 2017/11/3.
  6. // Copyright © 2017年 WildFireChat. All rights reserved.
  7. //
  8. #import "WFCUConversationSettingMemberCell.h"
  9. #import "SDWebImage.h"
  10. #import <WFChatClient/WFCChatClient.h>
  11. @interface WFCUConversationSettingMemberCell ()
  12. @property(nonatomic, strong) NSObject *model;
  13. @end
  14. @implementation WFCUConversationSettingMemberCell
  15. - (id)initWithFrame:(CGRect)frame {
  16. self = [super initWithFrame:frame];
  17. if (self) {
  18. self.contentView.backgroundColor = [UIColor whiteColor];
  19. }
  20. return self;
  21. }
  22. - (UILabel *)nameLabel {
  23. if (!_nameLabel) {
  24. _nameLabel = [[UILabel alloc] initWithFrame:CGRectZero];
  25. _nameLabel.textColor = [UIColor blackColor];
  26. _nameLabel.textAlignment = NSTextAlignmentCenter;
  27. _nameLabel.backgroundColor = [UIColor clearColor];
  28. _nameLabel.font = [UIFont systemFontOfSize:14];
  29. _nameLabel.hidden = YES;
  30. CGFloat nameLabelHeight = 16;
  31. _nameLabel.frame =
  32. CGRectMake(0, self.bounds.size.height - nameLabelHeight,
  33. self.bounds.size.width, nameLabelHeight);
  34. if (nameLabelHeight > 0) {
  35. _nameLabel.hidden = NO;
  36. } else {
  37. _nameLabel.hidden = YES;
  38. }
  39. [[self contentView] addSubview:_nameLabel];
  40. }
  41. return _nameLabel;
  42. }
  43. - (UIImageView *)headerImageView {
  44. if (!_headerImageView) {
  45. _headerImageView = [[UIImageView alloc] initWithFrame:CGRectZero];
  46. _headerImageView.autoresizingMask =
  47. UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
  48. _headerImageView.contentMode = UIViewContentModeScaleAspectFill;
  49. _headerImageView.clipsToBounds = YES;
  50. _headerImageView.layer.borderWidth = 1;
  51. _headerImageView.layer.borderColor = [UIColor whiteColor].CGColor;
  52. _headerImageView.layer.cornerRadius = 4;
  53. _headerImageView.layer.masksToBounds = YES;
  54. _headerImageView.backgroundColor = [UIColor clearColor];
  55. _headerImageView.layer.edgeAntialiasingMask =
  56. kCALayerLeftEdge | kCALayerRightEdge | kCALayerBottomEdge |
  57. kCALayerTopEdge;
  58. CGFloat nameLabelHeight = 16;
  59. CGFloat insideMargin = 5;
  60. CGFloat minLength =
  61. MIN(self.bounds.size.width,
  62. self.bounds.size.height - nameLabelHeight - insideMargin);
  63. _headerImageView.frame = CGRectMake(
  64. (self.bounds.size.width - minLength) / 2, 0, minLength, minLength);
  65. [[self contentView] addSubview:_headerImageView];
  66. }
  67. return _headerImageView;
  68. }
  69. - (void)setModel:(NSObject *)model withType:(WFCCConversationType)type {
  70. self.model = model;
  71. WFCCUserInfo *userInfo;
  72. WFCCGroupMember *groupMember;
  73. WFCCChannelInfo *channelInfo;
  74. if (type == Group_Type) {
  75. groupMember = (WFCCGroupMember *)model;
  76. userInfo = [[WFCCIMService sharedWFCIMService] getUserInfo:groupMember.memberId refresh:NO];
  77. } else if(type == Single_Type) {
  78. userInfo = [[WFCCIMService sharedWFCIMService] getUserInfo:(NSString *)model refresh:NO];
  79. } else if(type == Channel_Type) {
  80. channelInfo = [[WFCCIMService sharedWFCIMService] getChannelInfo:(NSString *)model refresh:NO];
  81. } else {
  82. return;
  83. }
  84. if (type == Channel_Type) {
  85. [self.headerImageView sd_setImageWithURL:[NSURL URLWithString:channelInfo.portrait] placeholderImage:[UIImage imageNamed:@"PersonalChat"]];
  86. self.nameLabel.text = channelInfo.name;
  87. } else {
  88. [self.headerImageView sd_setImageWithURL:[NSURL URLWithString:userInfo.portrait] placeholderImage:[UIImage imageNamed:@"PersonalChat"]];
  89. if (type == Group_Type && groupMember.alias.length) {
  90. self.nameLabel.text = groupMember.alias;
  91. } else {
  92. [self.nameLabel setText:userInfo.displayName];
  93. }
  94. }
  95. self.nameLabel.hidden = NO;
  96. }
  97. - (void)resetLayout:(CGFloat)nameLabelHeight
  98. insideMargin:(CGFloat)insideMargin {
  99. }
  100. @end