2
This commit is contained in:
@@ -21,8 +21,6 @@
|
||||
/// 人
|
||||
@property (nonatomic, strong) UIImageView *personImageView;
|
||||
|
||||
@property (nonatomic, strong) UIImageView *leftImageView;
|
||||
@property (nonatomic, strong) UIImageView *rightImageView;
|
||||
|
||||
@property (nonatomic, strong) UIImageView *leftBgImageView;
|
||||
@property (nonatomic, strong) UIImageView *rightBgImageView;
|
||||
@@ -173,7 +171,7 @@
|
||||
[self.bigWhiteContentView addSubview:self.secWhiteContentView];
|
||||
[self.secWhiteContentView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.right.equalTo(self).inset(0);
|
||||
make.top.equalTo(self.bigWhiteContentView).offset(47);
|
||||
make.top.equalTo(self.bigWhiteContentView).offset(40);
|
||||
make.bottom.equalTo(self.bigWhiteContentView);
|
||||
}];
|
||||
|
||||
@@ -184,19 +182,26 @@
|
||||
make.left.right.top.equalTo(self.secWhiteContentView);
|
||||
make.bottom.equalTo(self.secWhiteContentView);
|
||||
}];
|
||||
// [self.rightBgImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
// make.left.right.top.equalTo(self.secWhiteContentView);
|
||||
// make.bottom.equalTo(self.secWhiteContentView);
|
||||
// }];
|
||||
[self.rightBgImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.left.right.top.equalTo(self.secWhiteContentView);
|
||||
make.bottom.equalTo(self.secWhiteContentView);
|
||||
}];
|
||||
|
||||
|
||||
// 顶部栏
|
||||
[self.secWhiteContentView addSubview:self.topBar];
|
||||
[self.secWhiteContentView addSubview:self.containerView];
|
||||
|
||||
// 调整层级:将人物与皇冠图添加到与 topBar 同一父视图,并放在 topBar 之下
|
||||
[self.secWhiteContentView insertSubview:self.personImageView belowSubview:self.topBar];
|
||||
[self.secWhiteContentView insertSubview:self.hgImageView belowSubview:self.topBar];
|
||||
// 调整层级:将人物与皇冠图放到左右背景图的后面(z 轴更低)
|
||||
[self.secWhiteContentView insertSubview:self.personImageView belowSubview:self.leftBgImageView];
|
||||
[self.secWhiteContentView insertSubview:self.hgImageView belowSubview:self.rightBgImageView];
|
||||
|
||||
// 固定各层 zPosition,避免插入顺序导致的偶发层级问题(背景 < 人/皇冠 < 磨砂 < 顶部栏)
|
||||
self.leftBgImageView.layer.zPosition = 0;
|
||||
self.rightBgImageView.layer.zPosition = 0;
|
||||
self.personImageView.layer.zPosition = 1;
|
||||
self.hgImageView.layer.zPosition = 1;
|
||||
self.topBar.layer.zPosition = 3;
|
||||
|
||||
// [self.topBar addSubview:self.leftImageView];
|
||||
// [self.topBar addSubview:self.rightImageView];
|
||||
@@ -233,18 +238,6 @@
|
||||
make.height.mas_equalTo(54);
|
||||
}];
|
||||
|
||||
// [self.leftImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
// make.left.right.equalTo(self.topBar);
|
||||
// make.top.equalTo(self.topBar);
|
||||
// make.height.mas_equalTo(54);
|
||||
// }];
|
||||
// [self.rightImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
// make.left.right.equalTo(self.topBar);
|
||||
// make.top.equalTo(self.topBar);
|
||||
// make.height.equalTo(self.leftImageView);
|
||||
//
|
||||
// }];
|
||||
|
||||
[self.hotButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.centerY.equalTo(self.topBar).offset(3);
|
||||
make.left.equalTo(self.topBar);
|
||||
@@ -273,16 +266,16 @@
|
||||
[self.personImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
// 仍按页面整体的左右边距定位,保持与改层级前的视觉一致
|
||||
make.left.equalTo(self).offset(46);
|
||||
make.bottom.equalTo(self.topBar.mas_top).offset(22);
|
||||
make.width.mas_equalTo(70);
|
||||
make.height.mas_equalTo(107);
|
||||
make.bottom.equalTo(self.topBar.mas_top).offset(20);
|
||||
make.width.mas_equalTo(53);
|
||||
make.height.mas_equalTo(81);
|
||||
}];
|
||||
|
||||
[self.hgImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.right.equalTo(self).offset(-38);
|
||||
make.bottom.equalTo(self.topBar.mas_top).offset(12);
|
||||
make.width.mas_equalTo(97);
|
||||
make.height.mas_equalTo(78);
|
||||
make.bottom.equalTo(self.topBar.mas_top).offset(16);
|
||||
make.width.mas_equalTo(82);
|
||||
make.height.mas_equalTo(66);
|
||||
}];
|
||||
|
||||
}
|
||||
@@ -348,11 +341,24 @@
|
||||
make.width.mas_equalTo(78);
|
||||
}];
|
||||
if (index == 0) {
|
||||
self.leftImageView.hidden = false;
|
||||
self.rightImageView.hidden = true;
|
||||
}else{
|
||||
self.leftImageView.hidden = true;
|
||||
self.rightImageView.hidden = false;
|
||||
self.leftBgImageView.hidden = NO;
|
||||
self.rightBgImageView.hidden = YES;
|
||||
self.personImageView.hidden = YES;
|
||||
self.hgImageView.hidden = NO;
|
||||
} else {
|
||||
self.leftBgImageView.hidden = YES;
|
||||
self.rightBgImageView.hidden = NO;
|
||||
self.personImageView.hidden = NO;
|
||||
self.hgImageView.hidden = YES;
|
||||
}
|
||||
|
||||
// 确认层级:把可见的装饰图放到当前背景图后面
|
||||
UIView *visibleBg = self.rightBgImageView.hidden ? self.leftBgImageView : self.rightBgImageView;
|
||||
if (!self.hgImageView.hidden) {
|
||||
[self.secWhiteContentView insertSubview:self.hgImageView belowSubview:visibleBg];
|
||||
}
|
||||
if (!self.personImageView.hidden) {
|
||||
[self.secWhiteContentView insertSubview:self.personImageView belowSubview:visibleBg];
|
||||
}
|
||||
|
||||
if (animated) {
|
||||
@@ -382,25 +388,6 @@
|
||||
return _secWhiteContentView;
|
||||
}
|
||||
|
||||
- (UIImageView *)leftImageView{
|
||||
if (!_leftImageView) {
|
||||
_leftImageView = [[UIImageView alloc] init];
|
||||
_leftImageView.image = [UIImage imageNamed:@"home_left_image"];
|
||||
_leftImageView.contentMode = UIViewContentModeScaleToFill;
|
||||
}
|
||||
return _leftImageView;
|
||||
}
|
||||
|
||||
- (UIImageView *)rightImageView{
|
||||
if (!_rightImageView) {
|
||||
_rightImageView = [[UIImageView alloc] init];
|
||||
_rightImageView.image = [UIImage imageNamed:@"home_right_image"];
|
||||
_rightImageView.contentMode = UIViewContentModeScaleAspectFit;
|
||||
_rightImageView.hidden = true;
|
||||
}
|
||||
return _rightImageView;
|
||||
}
|
||||
|
||||
- (UIImageView *)hgImageView{
|
||||
if (!_hgImageView) {
|
||||
_hgImageView = [[UIImageView alloc] init];
|
||||
|
||||
@@ -9,9 +9,7 @@
|
||||
/// 头像占位(圆形描边)
|
||||
@property (nonatomic, strong) UIView *avatarCircleView;
|
||||
/// 彩条卡片背景
|
||||
@property (nonatomic, strong) UIView *cardView;
|
||||
/// 勋章数字(1/2/3)
|
||||
@property (nonatomic, strong) UILabel *medalLabel;
|
||||
@property (nonatomic, strong) UIImageView *cardImageView;
|
||||
/// 标题
|
||||
@property (nonatomic, strong) UILabel *titleLabel;
|
||||
/// 底部加号按钮
|
||||
@@ -32,11 +30,10 @@
|
||||
|
||||
- (void)setupUI {
|
||||
// 卡片
|
||||
[self addSubview:self.cardView];
|
||||
[self addSubview:self.cardImageView];
|
||||
// 头像圆圈
|
||||
[self addSubview:self.avatarCircleView];
|
||||
[self.cardView addSubview:self.medalLabel];
|
||||
[self.cardView addSubview:self.titleLabel];
|
||||
[self.cardImageView addSubview:self.titleLabel];
|
||||
// 加号按钮
|
||||
[self addSubview:self.plusButton];
|
||||
|
||||
@@ -47,25 +44,21 @@
|
||||
make.width.height.mas_equalTo(68);
|
||||
}];
|
||||
|
||||
[self.cardView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
[self.cardImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.equalTo(self.avatarCircleView.mas_bottom).offset(-34); // 顶部悬浮重叠
|
||||
make.left.right.equalTo(self);
|
||||
make.height.mas_equalTo(146);
|
||||
make.height.mas_equalTo(148);
|
||||
}];
|
||||
|
||||
[self.medalLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.equalTo(self.cardView).offset(34 + 15);
|
||||
make.centerX.equalTo(self.cardView);
|
||||
make.width.height.mas_equalTo(28);
|
||||
}];
|
||||
|
||||
|
||||
[self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.centerX.equalTo(self.cardView);
|
||||
make.top.equalTo(self.medalLabel.mas_bottom).offset(20);
|
||||
make.centerX.equalTo(self.cardImageView);
|
||||
make.top.equalTo(self.cardImageView).offset(84);
|
||||
}];
|
||||
|
||||
[self.plusButton mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.top.equalTo(self.cardView.mas_bottom).offset(12);
|
||||
make.top.equalTo(self.cardImageView.mas_bottom).offset(12);
|
||||
make.centerX.equalTo(self);
|
||||
make.width.mas_equalTo(52);
|
||||
make.height.mas_equalTo(28);
|
||||
@@ -75,16 +68,29 @@
|
||||
|
||||
- (void)renderWithTitle:(NSString *)title rank:(NSInteger)rank {
|
||||
self.titleLabel.text = title.length ? title : @"";
|
||||
self.medalLabel.text = [NSString stringWithFormat:@"%ld", (long)rank];
|
||||
|
||||
// 不同名次数的配色
|
||||
UIColor *theme;
|
||||
UIImage *image;
|
||||
switch (rank) {
|
||||
case 1: theme = [UIColor colorWithRed:1.00 green:0.86 blue:0.43 alpha:1.0]; break; // 金
|
||||
case 2: theme = [UIColor colorWithRed:0.68 green:0.80 blue:1.00 alpha:1.0]; break; // 蓝
|
||||
default: theme = [UIColor colorWithRed:1.00 green:0.78 blue:0.63 alpha:1.0]; break; // 橙
|
||||
case 1:
|
||||
{
|
||||
theme = [UIColor colorWithRed:1.00 green:0.86 blue:0.43 alpha:1.0];
|
||||
image = [UIImage imageNamed:@"home_rank_1"];
|
||||
}
|
||||
break; // 金
|
||||
case 2: {
|
||||
theme = [UIColor colorWithRed:0.68 green:0.80 blue:1.00 alpha:1.0];
|
||||
image = [UIImage imageNamed:@"home_rank_2"];
|
||||
}
|
||||
break; // 蓝
|
||||
default: {
|
||||
theme = [UIColor colorWithRed:1.00 green:0.78 blue:0.63 alpha:1.0];
|
||||
image = [UIImage imageNamed:@"home_rank_3"];
|
||||
|
||||
} break; // 橙
|
||||
}
|
||||
self.cardView.backgroundColor = theme;
|
||||
self.cardImageView.image = image;
|
||||
self.plusButton.backgroundColor = [theme colorWithAlphaComponent:0.3];
|
||||
|
||||
// 圆圈描边
|
||||
@@ -105,28 +111,13 @@
|
||||
return _avatarCircleView;
|
||||
}
|
||||
|
||||
- (UIView *)cardView {
|
||||
if (!_cardView) {
|
||||
_cardView = [[UIView alloc] init];
|
||||
_cardView.layer.cornerRadius = 14.0;
|
||||
_cardView.layer.masksToBounds = YES;
|
||||
_cardView.backgroundColor = [UIColor colorWithWhite:0.95 alpha:1];
|
||||
- (UIImageView *)cardImageView {
|
||||
if (!_cardImageView) {
|
||||
_cardImageView = [[UIImageView alloc] init];
|
||||
}
|
||||
return _cardView;
|
||||
return _cardImageView;
|
||||
}
|
||||
|
||||
- (UILabel *)medalLabel {
|
||||
if (!_medalLabel) {
|
||||
_medalLabel = [[UILabel alloc] init];
|
||||
_medalLabel.textAlignment = NSTextAlignmentCenter;
|
||||
_medalLabel.font = [UIFont boldSystemFontOfSize:15];
|
||||
_medalLabel.textColor = [UIColor whiteColor];
|
||||
_medalLabel.backgroundColor = [UIColor colorWithWhite:0.3 alpha:0.7];
|
||||
_medalLabel.layer.cornerRadius = 14;
|
||||
_medalLabel.layer.masksToBounds = YES;
|
||||
}
|
||||
return _medalLabel;
|
||||
}
|
||||
|
||||
- (UILabel *)titleLabel {
|
||||
if (!_titleLabel) {
|
||||
@@ -163,7 +154,7 @@
|
||||
|
||||
- (instancetype)initWithFrame:(CGRect)frame {
|
||||
if (self = [super initWithFrame:frame]) {
|
||||
self.backgroundColor = [UIColor colorWithWhite:0.98 alpha:1];
|
||||
self.backgroundColor = [UIColor whiteColor];
|
||||
[self setupUI];
|
||||
}
|
||||
return self;
|
||||
|
||||
Reference in New Issue
Block a user