208 lines
7.1 KiB
Objective-C
208 lines
7.1 KiB
Objective-C
//
|
|
// XPCycleView.m
|
|
// xplan-ios
|
|
//
|
|
// Created by XY on 2023/3/7.
|
|
//
|
|
|
|
#import "XPCycleView.h"
|
|
#import "NetImageView.h"
|
|
#import "ThemeColor.h"
|
|
#import <Masonry.h>
|
|
#import "XPHomeGiftRecordModel.h"
|
|
|
|
@interface XPCycleView ()
|
|
|
|
@property (nonatomic, strong) UIStackView *stackView;
|
|
/// 赠送者头像
|
|
@property (nonatomic, strong) NetImageView *senderAvatarImageView;
|
|
/// 赠送者昵称
|
|
@property (nonatomic, strong) UILabel *senderNameLabel;
|
|
/// 赠送
|
|
@property (nonatomic, strong) UILabel *senderTextLabel;
|
|
/// 接收者头像
|
|
@property (nonatomic, strong) NetImageView *receiverAvatarImageView;
|
|
/// 接收者昵称
|
|
@property (nonatomic, strong) UILabel *receiverNameLabel;
|
|
/// 礼物名称
|
|
@property (nonatomic, strong) UILabel *giftNameLabel;
|
|
/// 礼物图片
|
|
@property (nonatomic, strong) NetImageView *giftImageView;
|
|
/// 数量
|
|
@property (nonatomic, strong) UILabel *numLabel;
|
|
/// 箭头
|
|
@property (nonatomic, strong) UIImageView *arrowImageView;
|
|
|
|
@end
|
|
|
|
@implementation XPCycleView
|
|
|
|
- (instancetype)initWithFrame:(CGRect)frame{
|
|
self = [super initWithFrame:frame];
|
|
if (self) {
|
|
[self initSubViews];
|
|
}
|
|
return self;
|
|
}
|
|
|
|
- (void)initSubViews {
|
|
[self addSubview:self.stackView];
|
|
[self addSubview:self.arrowImageView];
|
|
|
|
[self.stackView addArrangedSubview:self.senderAvatarImageView];
|
|
[self.stackView addArrangedSubview:self.senderNameLabel];
|
|
[self.stackView addArrangedSubview:self.senderTextLabel];
|
|
[self.stackView addArrangedSubview:self.receiverAvatarImageView];
|
|
[self.stackView addArrangedSubview:self.receiverNameLabel];
|
|
[self.stackView addArrangedSubview:self.giftNameLabel];
|
|
[self.stackView addArrangedSubview:self.giftImageView];
|
|
[self.stackView addArrangedSubview:self.numLabel];
|
|
|
|
[self.arrowImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.height.mas_equalTo(18);
|
|
make.width.mas_equalTo(18);
|
|
make.right.mas_equalTo(-10);
|
|
make.centerY.mas_equalTo(0);
|
|
}];
|
|
|
|
[self.stackView mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.left.mas_equalTo(15);
|
|
make.top.bottom.mas_equalTo(0);
|
|
make.right.mas_lessThanOrEqualTo(self.arrowImageView.mas_left).offset(-10);
|
|
}];
|
|
|
|
[self.senderAvatarImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.size.mas_equalTo(CGSizeMake(24, 24));
|
|
}];
|
|
[self.receiverAvatarImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.size.mas_equalTo(CGSizeMake(24, 24));
|
|
}];
|
|
[self.giftImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.size.mas_equalTo(CGSizeMake(24, 24));
|
|
}];
|
|
|
|
}
|
|
|
|
- (void)setInfoModel:(XPHomeGiftRecordModel *)infoModel {
|
|
_infoModel = infoModel;
|
|
self.stackView.hidden = _infoModel.isEmpty;
|
|
self.senderAvatarImageView.imageUrl = infoModel.senderAvatar;
|
|
self.senderNameLabel.text = infoModel.senderNick;
|
|
self.receiverAvatarImageView.imageUrl = infoModel.receiverAvatar;
|
|
self.receiverNameLabel.text = infoModel.receiverNick;
|
|
self.giftNameLabel.text = infoModel.giftName;
|
|
self.giftImageView.imageUrl = infoModel.giftPicUrl;
|
|
self.numLabel.text = [NSString stringWithFormat:@"x%@",infoModel.giftNum];
|
|
}
|
|
|
|
- (UIStackView *)stackView {
|
|
if (!_stackView) {
|
|
_stackView = [[UIStackView alloc] init];
|
|
_stackView.axis = UILayoutConstraintAxisHorizontal;
|
|
_stackView.distribution = UIStackViewDistributionFill;
|
|
_stackView.alignment = UIStackViewAlignmentCenter;
|
|
_stackView.spacing = 5;
|
|
}
|
|
return _stackView;
|
|
}
|
|
|
|
- (NetImageView *)senderAvatarImageView {
|
|
if (!_senderAvatarImageView) {
|
|
NetImageConfig * config = [[NetImageConfig alloc] init];
|
|
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
|
|
config.imageType = ImageTypeUserIcon;
|
|
_senderAvatarImageView = [[NetImageView alloc] initWithConfig:config];
|
|
_senderAvatarImageView.userInteractionEnabled = YES;
|
|
_senderAvatarImageView.layer.masksToBounds = YES;
|
|
_senderAvatarImageView.layer.cornerRadius = 12;
|
|
_senderAvatarImageView.contentMode = UIViewContentModeScaleAspectFill;
|
|
}
|
|
return _senderAvatarImageView;
|
|
}
|
|
|
|
- (UILabel *)senderNameLabel {
|
|
if (!_senderNameLabel) {
|
|
_senderNameLabel = [[UILabel alloc] init];
|
|
_senderNameLabel.textColor = [ThemeColor mainTextColor];
|
|
_senderNameLabel.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium];
|
|
}
|
|
return _senderNameLabel;
|
|
}
|
|
|
|
- (UILabel *)senderTextLabel {
|
|
if (!_senderTextLabel) {
|
|
_senderTextLabel = [[UILabel alloc] init];
|
|
_senderTextLabel.text = @"赠送";
|
|
_senderTextLabel.textColor = [ThemeColor colorWithHexString:@"#FFA826"];
|
|
_senderTextLabel.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium];
|
|
}
|
|
return _senderTextLabel;
|
|
}
|
|
|
|
- (NetImageView *)receiverAvatarImageView {
|
|
if (!_receiverAvatarImageView) {
|
|
NetImageConfig * config = [[NetImageConfig alloc] init];
|
|
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
|
|
config.imageType = ImageTypeUserIcon;
|
|
_receiverAvatarImageView = [[NetImageView alloc] initWithConfig:config];
|
|
_receiverAvatarImageView.userInteractionEnabled = YES;
|
|
_receiverAvatarImageView.layer.masksToBounds = YES;
|
|
_receiverAvatarImageView.layer.cornerRadius = 12;
|
|
_receiverAvatarImageView.contentMode = UIViewContentModeScaleAspectFill;
|
|
}
|
|
return _receiverAvatarImageView;
|
|
}
|
|
|
|
- (UILabel *)receiverNameLabel {
|
|
if (!_receiverNameLabel) {
|
|
_receiverNameLabel = [[UILabel alloc] init];
|
|
_receiverNameLabel.textColor = [ThemeColor mainTextColor];
|
|
_receiverNameLabel.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium];
|
|
}
|
|
return _receiverNameLabel;
|
|
}
|
|
|
|
- (UILabel *)giftNameLabel {
|
|
if (!_giftNameLabel) {
|
|
_giftNameLabel = [[UILabel alloc] init];
|
|
_giftNameLabel.textColor = [ThemeColor colorWithHexString:@"#FFA826"];
|
|
_giftNameLabel.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium];
|
|
}
|
|
return _giftNameLabel;
|
|
}
|
|
|
|
- (NetImageView *)giftImageView {
|
|
if (!_giftImageView) {
|
|
NetImageConfig * config = [[NetImageConfig alloc] init];
|
|
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
|
|
config.imageType = ImageTypeRoomGift;
|
|
_giftImageView = [[NetImageView alloc] initWithConfig:config];
|
|
_giftImageView.userInteractionEnabled = YES;
|
|
_giftImageView.layer.masksToBounds = YES;
|
|
_giftImageView.layer.cornerRadius = 12;
|
|
_giftImageView.contentMode = UIViewContentModeScaleAspectFill;
|
|
}
|
|
return _giftImageView;
|
|
}
|
|
|
|
- (UILabel *)numLabel {
|
|
if (!_numLabel) {
|
|
_numLabel = [[UILabel alloc] init];
|
|
_numLabel.textColor = [ThemeColor textThirdColor];
|
|
_numLabel.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium];
|
|
}
|
|
return _numLabel;
|
|
}
|
|
|
|
- (UIImageView *)arrowImageView {
|
|
if (!_arrowImageView) {
|
|
_arrowImageView = [[UIImageView alloc] init];
|
|
_arrowImageView.image = [UIImage imageNamed:@"home_message_arrow"];
|
|
_arrowImageView.contentMode = UIViewContentModeScaleAspectFit;
|
|
}
|
|
return _arrowImageView;
|
|
}
|
|
|
|
@end
|
|
|