| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- //
- // 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
|