Files
featherVoice/TUIKit/TUIChat/UI_Classic/Cell/Custom/TUIOrderCell.m
2025-08-08 10:49:36 +08:00

113 lines
3.6 KiB
Objective-C

//
// TUIOrderCell.m
// TUIChat
//
// Created by xia on 2022/6/13.
// Copyright © 2023 Tencent. All rights reserved.
//
#import "TUIOrderCell.h"
#import <TUICore/TUIGlobalization.h>
#import <TUICore/TUIThemeManager.h>
@implementation TUIOrderCell
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
_titleLabel = [[UILabel alloc] init];
_titleLabel.font = [UIFont boldSystemFontOfSize:12];
_titleLabel.textColor = TUIChatDynamicColor(@"chat_text_message_receive_text_color", @"#000000");
_titleLabel.lineBreakMode = NSLineBreakByTruncatingTail;
[self.container addSubview:_titleLabel];
_descLabel = [[UILabel alloc] init];
_descLabel.font = [UIFont systemFontOfSize:12];
_descLabel.numberOfLines = 1;
_descLabel.lineBreakMode = NSLineBreakByTruncatingTail;
_descLabel.textColor = TUIChatDynamicColor(@"chat_custom_order_message_desc_color", @"#999999");
[self.container addSubview:_descLabel];
_priceLabel = [[UILabel alloc] init];
_priceLabel.font = [UIFont boldSystemFontOfSize:18];
_priceLabel.lineBreakMode = NSLineBreakByTruncatingTail;
_priceLabel.textColor = TUIChatDynamicColor(@"chat_custom_order_message_price_color", @"#FF7201");
[self.container addSubview:_priceLabel];
_iconView = [[UIImageView alloc] init];
_iconView.layer.cornerRadius = 8.0;
_iconView.layer.masksToBounds = YES;
[self.container addSubview:_iconView];
}
return self;
}
- (void)fillWithData:(TUIOrderCellData *)data {
[super fillWithData:data];
self.customData = data;
self.titleLabel.text = data.title;
self.descLabel.text = data.desc;
self.priceLabel.text = data.price;
if (data.imageUrl == nil) {
[self.iconView setImage:TUIChatBundleThemeImage(@"chat_custom_order_message_img", @"message_custom_order")];
} else {
[self.iconView setImage:[UIImage sd_imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:data.imageUrl]]]];
}
// tell constraints they need updating
[self setNeedsUpdateConstraints];
// update constraints now so we can animate the change
[self updateConstraintsIfNeeded];
[self layoutIfNeeded];
}
+ (BOOL)requiresConstraintBasedLayout {
return YES;
}
// this is Apple's recommended place for adding/updating constraints
- (void)updateConstraints {
[super updateConstraints];
[self.iconView mas_remakeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(10);
make.leading.mas_equalTo(12);
make.width.mas_equalTo(60);
make.height.mas_equalTo(60);
}];
[self.titleLabel mas_remakeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(10);
make.leading.mas_equalTo(80);
make.width.mas_equalTo(150);
make.height.mas_equalTo(17);
}];
[self.descLabel mas_remakeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(30);
make.leading.mas_equalTo(80);
make.width.mas_equalTo(150);
make.height.mas_equalTo(17);
}];
[self.priceLabel mas_remakeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(49);
make.leading.mas_equalTo(80);
make.width.mas_equalTo(150);
make.height.mas_equalTo(25);
}];
}
- (void)layoutSubviews {
[super layoutSubviews];
}
#pragma mark - TUIMessageCellProtocol
+ (CGSize)getContentSize:(TUIMessageCellData *)data {
CGSize size = CGSizeMake(245, 80);
return size;
}
@end