QMChatRoomCardCell.m 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. //
  2. // QMChatCardCell.m
  3. // IMSDK-OC
  4. //
  5. // Created by lishuijiao on 2018/6/22.
  6. // Copyright © 2018年 HCF. All rights reserved.
  7. //
  8. #import "QMChatRoomCardCell.h"
  9. @interface QMChatRoomCardCell()
  10. @end
  11. @implementation QMChatRoomCardCell
  12. {
  13. NSString *_messageId;
  14. UIView *_cardView;
  15. UILabel *_headerLabel;
  16. UILabel *_subheadLabel;
  17. UILabel *_priceLabel;
  18. UIImageView *_imageView;
  19. UIButton *_sendButton;
  20. }
  21. - (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
  22. self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
  23. if (self) {
  24. [self createUI];
  25. }
  26. return self;
  27. }
  28. - (void)createUI {
  29. self.iconImage.hidden = YES;
  30. _cardView = [[UIView alloc] init];
  31. _cardView.backgroundColor = [UIColor whiteColor];
  32. [self.contentView addSubview:_cardView];
  33. _imageView = [[UIImageView alloc] init];
  34. _imageView.frame = CGRectMake(10, 10, 60, 60);
  35. [_cardView addSubview:_imageView];
  36. _headerLabel = [[UILabel alloc] init];
  37. _headerLabel.frame = CGRectMake(80, 10, kScreenWidth - 90, 30);
  38. _headerLabel.font = [UIFont systemFontOfSize:15.0f];
  39. _headerLabel.textColor = [UIColor blackColor];
  40. _headerLabel.numberOfLines = 2;
  41. [_cardView addSubview:_headerLabel];
  42. _subheadLabel = [[UILabel alloc] init];
  43. _subheadLabel.font = [UIFont systemFontOfSize:12.0f];
  44. _subheadLabel.textColor = [UIColor colorWithRed:89/255.0 green:89/255.0 blue:89/255.0 alpha:1];
  45. [_cardView addSubview:_subheadLabel];
  46. _priceLabel = [[UILabel alloc] init];
  47. _priceLabel.textColor = [UIColor colorWithRed:255/255.0 green:107/255.0 blue:107/255.0 alpha:1];
  48. _priceLabel.font = [UIFont systemFontOfSize:14.0f];
  49. [_cardView addSubview:_priceLabel];
  50. _sendButton = [[UIButton alloc] init];
  51. [_sendButton setTitle:@"发送" forState:UIControlStateNormal];
  52. [_sendButton setTitleColor:[UIColor colorWithRed:115/255.0 green:170/255.0 blue:234/255.0 alpha:1] forState:UIControlStateNormal];
  53. _sendButton.layer.borderWidth = 1;
  54. _sendButton.layer.borderColor = [[UIColor colorWithRed:115/255.0 green:170/255.0 blue:234/255.0 alpha:1] CGColor];
  55. _sendButton.layer.masksToBounds = YES;
  56. _sendButton.layer.cornerRadius = 25/2;
  57. _sendButton.titleLabel.font = [UIFont systemFontOfSize:15.0f];
  58. [_sendButton addTarget:self action:@selector(sendAction:) forControlEvents:UIControlEventTouchUpInside];
  59. [_cardView addSubview:_sendButton];
  60. }
  61. - (void)setData:(CustomMessage *)message avater:(NSString *)avater {
  62. self.message = message;
  63. _messageId = message._id;
  64. [super setData:message avater:avater];
  65. _cardView.frame = CGRectMake(0, CGRectGetMaxY(self.timeLabel.frame)+10, kScreenWidth, 150);
  66. [_imageView sd_setImageWithURL:[NSURL URLWithString:message.cardImage] placeholderImage:[UIImage imageNamed:@"qm_default_user"]];
  67. _headerLabel.text = message.cardHeader;
  68. CGFloat strHeight = [self calcLabelHeight:message.cardHeader font:[UIFont systemFontOfSize:15.0f] width:kScreenWidth - 90];
  69. _subheadLabel.text = message.cardSubhead;
  70. _priceLabel.text = message.cardPrice;
  71. _headerLabel.frame = CGRectMake(80, 10, kScreenWidth - 90, strHeight);
  72. _subheadLabel.frame = CGRectMake(80, CGRectGetMaxY(_headerLabel.frame)+5, kScreenWidth - 90, 20);
  73. _priceLabel.frame = CGRectMake(80, CGRectGetMaxY(_subheadLabel.frame)+10, kScreenWidth - 90, 20);
  74. _sendButton.frame = CGRectMake(kScreenWidth/2-40, CGRectGetMaxY(_priceLabel.frame)+10, 80, 25);
  75. }
  76. - (void)sendAction: (UIButton *) button {
  77. NSMutableDictionary *dic = [[NSMutableDictionary alloc] init];
  78. [dic setObject:self.message.cardImage forKey:@"cardImage"];
  79. [dic setObject:self.message.cardHeader forKey:@"cardHeader"];
  80. [dic setObject:self.message.cardSubhead forKey:@"cardSubhead"];
  81. [dic setObject:self.message.cardPrice forKey:@"cardPrice"];
  82. [dic setObject:self.message.cardUrl forKey:@"cardUrl"];
  83. [QMConnect sendMsgCardInfo:dic successBlock:^{
  84. NSLog(@"发送商品信息成功");
  85. } failBlock:^{
  86. NSLog(@"发送失败");
  87. }];
  88. }
  89. - (void)setCornerButton: (UIButton *) button {
  90. UIBezierPath * maskPath = [UIBezierPath bezierPathWithRoundedRect:button.bounds byRoundingCorners: UIRectCornerTopLeft | UIRectCornerBottomLeft | UIRectCornerTopRight | UIRectCornerBottomRight cornerRadii:CGSizeMake(20, 20)];
  91. CAShapeLayer * maskLayer = [[CAShapeLayer alloc] init];
  92. maskLayer.path = maskPath.CGPath;
  93. button.layer.mask = maskLayer;
  94. }
  95. - (CGFloat)calcLabelHeight: (NSString *)text font: (UIFont *)font width: (CGFloat)width {
  96. NSDictionary *attribute = @{NSFontAttributeName: font};
  97. CGRect labelRect = [text boundingRectWithSize:CGSizeMake(width, 40) options:NSStringDrawingUsesLineFragmentOrigin attributes:attribute context:nil];
  98. return labelRect.size.height;
  99. }
  100. - (void)awakeFromNib {
  101. [super awakeFromNib];
  102. // Initialization code
  103. }
  104. - (void)setSelected:(BOOL)selected animated:(BOOL)animated {
  105. [super setSelected:selected animated:animated];
  106. // Configure the view for the selected state
  107. }
  108. @end