TUIOrderCell.m 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. //
  2. // TUIOrderCell.m
  3. // TUIChat
  4. //
  5. // Created by xia on 2022/6/13.
  6. // Copyright © 2023 Tencent. All rights reserved.
  7. //
  8. #import "TUIOrderCell.h"
  9. #import <TUICore/TUIGlobalization.h>
  10. #import <TUICore/TUIThemeManager.h>
  11. @implementation TUIOrderCell
  12. - (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
  13. self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
  14. if (self) {
  15. _titleLabel = [[UILabel alloc] init];
  16. _titleLabel.font = [UIFont boldSystemFontOfSize:12];
  17. _titleLabel.textColor = TUIChatDynamicColor(@"chat_text_message_receive_text_color", @"#000000");
  18. _titleLabel.lineBreakMode = NSLineBreakByTruncatingTail;
  19. [self.container addSubview:_titleLabel];
  20. _descLabel = [[UILabel alloc] init];
  21. _descLabel.font = [UIFont systemFontOfSize:12];
  22. _descLabel.numberOfLines = 1;
  23. _descLabel.lineBreakMode = NSLineBreakByTruncatingTail;
  24. _descLabel.textColor = TUIChatDynamicColor(@"chat_custom_order_message_desc_color", @"#999999");
  25. [self.container addSubview:_descLabel];
  26. _priceLabel = [[UILabel alloc] init];
  27. _priceLabel.font = [UIFont boldSystemFontOfSize:18];
  28. _priceLabel.lineBreakMode = NSLineBreakByTruncatingTail;
  29. _priceLabel.textColor = TUIChatDynamicColor(@"chat_custom_order_message_price_color", @"#FF7201");
  30. [self.container addSubview:_priceLabel];
  31. _iconView = [[UIImageView alloc] init];
  32. _iconView.layer.cornerRadius = 8.0;
  33. _iconView.layer.masksToBounds = YES;
  34. [self.container addSubview:_iconView];
  35. }
  36. return self;
  37. }
  38. - (void)fillWithData:(TUIOrderCellData *)data {
  39. [super fillWithData:data];
  40. self.customData = data;
  41. self.titleLabel.text = data.title;
  42. self.descLabel.text = data.desc;
  43. self.priceLabel.text = data.price;
  44. if (data.imageUrl == nil) {
  45. [self.iconView setImage:TUIChatBundleThemeImage(@"chat_custom_order_message_img", @"message_custom_order")];
  46. } else {
  47. [self.iconView setImage:[UIImage sd_imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:data.imageUrl]]]];
  48. }
  49. // tell constraints they need updating
  50. [self setNeedsUpdateConstraints];
  51. // update constraints now so we can animate the change
  52. [self updateConstraintsIfNeeded];
  53. [self layoutIfNeeded];
  54. }
  55. + (BOOL)requiresConstraintBasedLayout {
  56. return YES;
  57. }
  58. // this is Apple's recommended place for adding/updating constraints
  59. - (void)updateConstraints {
  60. [super updateConstraints];
  61. [self.iconView mas_remakeConstraints:^(MASConstraintMaker *make) {
  62. make.top.mas_equalTo(10);
  63. make.leading.mas_equalTo(12);
  64. make.width.mas_equalTo(60);
  65. make.height.mas_equalTo(60);
  66. }];
  67. [self.titleLabel mas_remakeConstraints:^(MASConstraintMaker *make) {
  68. make.top.mas_equalTo(10);
  69. make.leading.mas_equalTo(80);
  70. make.width.mas_equalTo(150);
  71. make.height.mas_equalTo(17);
  72. }];
  73. [self.descLabel mas_remakeConstraints:^(MASConstraintMaker *make) {
  74. make.top.mas_equalTo(30);
  75. make.leading.mas_equalTo(80);
  76. make.width.mas_equalTo(150);
  77. make.height.mas_equalTo(17);
  78. }];
  79. [self.priceLabel mas_remakeConstraints:^(MASConstraintMaker *make) {
  80. make.top.mas_equalTo(49);
  81. make.leading.mas_equalTo(80);
  82. make.width.mas_equalTo(150);
  83. make.height.mas_equalTo(25);
  84. }];
  85. }
  86. - (void)layoutSubviews {
  87. [super layoutSubviews];
  88. }
  89. #pragma mark - TUIMessageCellProtocol
  90. + (CGSize)getContentSize:(TUIMessageCellData *)data {
  91. CGSize size = CGSizeMake(245, 80);
  92. return size;
  93. }
  94. @end