NIMTeamCardHeaderCell.m 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. //
  2. // TeamCardHeaderCell.m
  3. // NIM
  4. //
  5. // Created by chris on 15/3/7.
  6. // Copyright (c) 2015年 Netease. All rights reserved.
  7. //
  8. #import "NIMTeamCardHeaderCell.h"
  9. #import "NIMAvatarImageView.h"
  10. #import "UIView+NIM.h"
  11. #import "NIMCardMemberItem.h"
  12. #import "UIImage+NIMKit.h"
  13. @interface NIMTeamCardHeaderCell()
  14. @property (nonatomic,strong) id<NIMKitCardHeaderData> data;
  15. @end
  16. @implementation NIMTeamCardHeaderCell
  17. - (instancetype)initWithFrame:(CGRect)frame{
  18. self = [super initWithFrame:frame];
  19. if (self) {
  20. _imageView = [[NIMAvatarImageView alloc] initWithFrame:CGRectMake(0, 0, 55, 55)];
  21. [self addSubview:_imageView];
  22. _titleLabel = [[UILabel alloc] initWithFrame:CGRectZero];
  23. _titleLabel.font = [UIFont systemFontOfSize:13.f];
  24. _titleLabel.backgroundColor = [UIColor clearColor];
  25. _titleLabel.textAlignment = NSTextAlignmentCenter;
  26. [self addSubview:_titleLabel];
  27. _roleImageView = [[UIImageView alloc] initWithFrame:CGRectZero];
  28. [self addSubview:_roleImageView];
  29. _removeBtn = [UIButton buttonWithType:UIButtonTypeCustom];
  30. _removeBtn.hidden = YES;
  31. [_removeBtn setImage:[UIImage nim_imageInKit:@"icon_avatar_del"] forState:UIControlStateNormal];
  32. [_removeBtn sizeToFit];
  33. [_removeBtn addTarget:self action:@selector(onTouchRemoveBtn:) forControlEvents:UIControlEventTouchUpInside];
  34. [self addSubview:_removeBtn];
  35. }
  36. return self;
  37. }
  38. - (void)refreshData:(id<NIMKitCardHeaderData>)data{
  39. self.data = data;
  40. NSURL *url;
  41. if ([data respondsToSelector:@selector(youpaipimageUrl)] && data.imageUrl.length) {
  42. url = [NSURL URLWithString:data.imageUrl];
  43. }
  44. [self.imageView nim_setImageWithURL:url placeholderImage:data.imageNormal];
  45. [self.imageView addTarget:self action:@selector(onSelected:) forControlEvents:UIControlEventTouchUpInside];
  46. self.titleLabel.text = data.title;
  47. if([data isKindOfClass:[NIMTeamCardMemberItem class]]) {
  48. NIMTeamCardMemberItem *member = data;
  49. self.titleLabel.text = member.title.length ? member.title : member.memberId;
  50. switch (member.type) {
  51. case NIMTeamMemberTypeOwner:
  52. self.roleImageView.image = [UIImage nim_imageInKit:@"icon_team_creator"];
  53. break;
  54. case NIMTeamMemberTypeManager:
  55. self.roleImageView.image = [UIImage nim_imageInKit:@"icon_team_manager"];
  56. break;
  57. default:
  58. self.roleImageView.image = nil;
  59. break;
  60. }
  61. }else{
  62. self.roleImageView.image = nil;
  63. }
  64. [self.titleLabel sizeToFit];
  65. }
  66. - (void)onSelected:(id)sender{
  67. if ([self.delegate respondsToSelector:@selector(cellDidSelected:)]) {
  68. [self.delegate cellDidSelected:self];
  69. }
  70. }
  71. - (void)onTouchRemoveBtn:(id)sender{
  72. if ([self.delegate respondsToSelector:@selector(cellShouldBeRemoved:)]) {
  73. [self.delegate cellShouldBeRemoved:self];
  74. }
  75. }
  76. - (void)layoutSubviews{
  77. [super layoutSubviews];
  78. self.imageView.nim_centerX = self.nim_width * .5f;
  79. self.titleLabel.nim_width = self.nim_width + 10;
  80. self.titleLabel.nim_bottom = self.nim_height;
  81. self.titleLabel.nim_centerX = self.nim_width * .5f;
  82. [self.roleImageView sizeToFit];
  83. self.roleImageView.nim_bottom = self.imageView.nim_bottom;
  84. self.roleImageView.nim_right = self.imageView.nim_right;
  85. self.removeBtn.nim_right = self.nim_width;
  86. }
  87. @end