Files
yinmeng-ios/xplan-ios/Main/Home/View/SubViews/CycleVerticalView/XPCycleView.m
chenshuanglin 97cf46bb89 首页UI调整
2023-03-17 19:38:27 +08:00

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