修改用户名UI

This commit is contained in:
2025-12-26 14:48:24 +08:00
parent 6713f36387
commit c0fa51bb2e

View File

@@ -24,6 +24,7 @@
@property (nonatomic, strong) UIImageView *cardRight;
@property (nonatomic, strong) UIImageView *avatarEditIcon; //
@property (nonatomic, strong) KBUser *userModel;
@property (nonatomic, assign) NSInteger kb_vipLayoutState; // -1: unknown, 0: non-vip, 1: vip
//@property (nonatomic, strong) MASConstraint *vipIconWidthConstraint;
//@property (nonatomic, strong) MASConstraint *nameRightToVipConstraint;
//@property (nonatomic, strong) MASConstraint *nameRightToSuperviewConstraint;
@@ -34,6 +35,7 @@
- (instancetype)initWithFrame:(CGRect)frame {
if (self = [super initWithFrame:frame]) {
self.kb_vipLayoutState = -1;
self.backgroundColor = [UIColor clearColor]; //
[self addSubview:self.titleLabel];
@@ -131,11 +133,54 @@
[self.avatarView kb_setAvatarURL:user.avatarUrl placeholder:KBAvatarPlaceholderImage];
BOOL isVip = user.isVip;
[self kb_applyVipLayout:isVip];
self.vipIconView.hidden = !isVip;
self.vipExpiryLabel.hidden = !isVip;
self.vipExpiryLabel.text = isVip ? [self vipExpiryDisplayTextFrom:user.vipExpiry] : nil;
}
- (void)kb_applyVipLayout:(BOOL)isVip {
NSInteger state = isVip ? 1 : 0;
if (self.kb_vipLayoutState == state) { return; }
self.kb_vipLayoutState = state;
if (isVip) {
[self.nameLabel mas_remakeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.avatarView.mas_right).offset(10);
make.bottom.equalTo(self.avatarView.mas_centerY).offset(-4);
}];
[self.vipIconView mas_remakeConstraints:^(MASConstraintMaker *make) {
make.centerY.equalTo(self.nameLabel);
make.left.equalTo(self.nameLabel.mas_right).offset(10);
make.right.lessThanOrEqualTo(self).offset(-16);
make.width.mas_equalTo(51);
make.height.mas_equalTo(20);
}];
[self.vipExpiryLabel mas_remakeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.avatarView.mas_centerY).offset(4);
make.left.equalTo(self.nameLabel);
make.right.lessThanOrEqualTo(self).offset(-16);
}];
return;
}
[self.nameLabel mas_remakeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.avatarView.mas_right).offset(10);
make.centerY.equalTo(self.avatarView);
make.right.lessThanOrEqualTo(self).offset(-16);
}];
[self.vipIconView mas_remakeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.nameLabel.mas_right);
make.centerY.equalTo(self.nameLabel);
make.width.height.mas_equalTo(0);
}];
[self.vipExpiryLabel mas_remakeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.nameLabel.mas_bottom);
make.left.equalTo(self.nameLabel);
make.width.height.mas_equalTo(0);
}];
}
- (NSString *)vipExpiryDisplayTextFrom:(NSString *)rawDate {
NSString *prefix = KBLocalized(@"Due On");
if (rawDate.length == 0) {
@@ -254,7 +299,7 @@
- (UILabel *)nameLabel {
if (!_nameLabel) {
_nameLabel = [UILabel new];
_nameLabel.text = @"Notice";
_nameLabel.text = @"--";
_nameLabel.font = [KBFont medium:20];
_nameLabel.textColor = [UIColor colorWithHex:KBBlackValue];
_nameLabel.lineBreakMode = NSLineBreakByTruncatingTail;