// // IconInfoView.m // BuguLive // // Created by voidcat on 2024/9/12. // Copyright © 2024 xfg. All rights reserved. // #import "IconInfoView.h" @implementation IconInfoView /* // Only override drawRect: if you perform custom drawing. // An empty implementation adversely affects performance during animation. - (void)drawRect:(CGRect)rect { // Drawing code } */ - (instancetype)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { [self setupSubviews]; } return self; } - (void)setupSubviews { // 初始化子视图 self.ageView = [[UIView alloc] init]; self.levelView = [[UIImageView alloc] init]; self.levelView.contentMode = UIViewContentModeScaleAspectFit; self.nobleView = [[UIImageView alloc] init]; self.vipView = [[UIImageView alloc] init]; self.vipView.image = [UIImage imageNamed:@"mg_new_vip_icon"]; self.vipView.contentMode = UIViewContentModeScaleAspectFit; // 设置子视图的背景色以便于区分 self.ageView.backgroundColor = [UIColor clearColor]; self.levelView.backgroundColor = [UIColor clearColor]; self.nobleView.backgroundColor = [UIColor clearColor]; self.vipView.backgroundColor = [UIColor clearColor]; // 添加子视图到父视图 [self addSubview:self.ageView]; [self addSubview:self.levelView]; [self addSubview:self.nobleView]; [self addSubview:self.vipView]; // 使用Masonry进行布局 [self setupConstraints]; } - (void)setupConstraints { CGFloat margin = 10; // 设置子视图之间的间距 [self.ageView mas_makeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(self.mas_left).offset(margin); make.top.bottom.equalTo(self); make.width.equalTo(@50); // 设置初始宽度 }]; [self.levelView mas_makeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(self.ageView.mas_right).offset(margin); make.top.bottom.equalTo(self); make.width.equalTo(@39); // 设置初始宽度 }]; [self.nobleView mas_makeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(self.levelView.mas_right).offset(margin); make.top.bottom.equalTo(self); make.width.equalTo(@43); // 设置初始宽度 }]; [self.vipView mas_makeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(self.nobleView.mas_right).offset(margin); make.top.bottom.equalTo(self); make.width.equalTo(@16); // 设置初始宽度 make.right.equalTo(self.mas_right).offset(-margin); }]; } - (void)updateConstraintsIfNeeded { [super updateConstraintsIfNeeded]; // 动态调整子视图的宽度 [self.ageView mas_updateConstraints:^(MASConstraintMaker *make) { make.width.equalTo(self.ageView.hidden ? @0 : @50); }]; [self.levelView mas_updateConstraints:^(MASConstraintMaker *make) { make.width.equalTo(self.levelView.hidden ? @0 : @39); }]; [self.nobleView mas_updateConstraints:^(MASConstraintMaker *make) { make.width.equalTo(self.nobleView.hidden ? @0 : @43); }]; [self.vipView mas_updateConstraints:^(MASConstraintMaker *make) { make.width.equalTo(self.vipView.hidden ? @0 : @16); }]; // 重新布局 [self layoutIfNeeded]; } @end