// // QXRoomPKResultView.m // QXLive // // Created by 启星 on 2025/7/3. // #import "QXRoomPKResultView.h" #import "QXTimer.h" @interface QXRoomPKResultView() @property (nonatomic,strong)UIView *bgView; @property (nonatomic,strong)UIImageView *bgImageView; @property (nonatomic,strong)UIImageView *victoryHeader; @property (nonatomic,strong)UILabel *victoryNameLabel; @property (nonatomic,strong)UIImageView *victoryImageView; @property (nonatomic,strong)UIImageView *defeatedHeader; @property (nonatomic,strong)UILabel *defeatedNameLabel; @property (nonatomic,strong)UIImageView *defeatedImageView; @property (nonatomic,strong)QXTimer *timer; @end @implementation QXRoomPKResultView - (instancetype)initWithType:(QXRoomPKResulttType)type { self = [super init]; if (self) { _type = type; [self initSubviews]; } return self; } -(void)initSubviews{ self.backgroundColor = [UIColor colorWithWhite:0.0 alpha:0.3]; self.bgView = [[UIView alloc] initWithFrame:CGRectMake(0, (SCREEN_HEIGHT-SCREEN_WIDTH)/2, SCREEN_WIDTH, SCREEN_WIDTH)]; [self addSubview:self.bgView]; self.bgImageView = [[UIImageView alloc] init]; self.bgImageView.frame = CGRectMake(0, 0, self.bgView.width, ScaleWidth(248)); [self.bgView addSubview:self.bgImageView]; self.victoryHeader = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"user_header_placehoulder"]]; self.victoryHeader.contentMode = UIViewContentModeScaleAspectFill; self.victoryHeader.frame = CGRectMake(ScaleWidth(34), ScaleWidth(85), ScaleWidth(50), ScaleWidth(50)); [self.victoryHeader addRoundedCornersWithRadius:ScaleWidth(25)]; [self.bgView addSubview:self.victoryHeader]; // room_pk_victory self.victoryNameLabel = [[UILabel alloc] initWithFrame:CGRectMake(self.victoryHeader.left-ScaleWidth(18), self.victoryHeader.bottom+5, ScaleWidth(50+36), 20)]; self.victoryNameLabel.font = [UIFont systemFontOfSize:12]; self.victoryNameLabel.textColor = [UIColor whiteColor]; self.victoryNameLabel.textAlignment = NSTextAlignmentCenter; self.victoryNameLabel.text = @"张三"; [self.bgView addSubview:self.victoryNameLabel]; self.victoryImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, self.victoryHeader.bottom-ScaleWidth(17)+5, ScaleWidth(15), ScaleWidth(17))]; self.victoryImageView.image = [UIImage imageNamed:@"room_pk_victory"]; [self.bgView addSubview:self.victoryImageView]; self.victoryImageView.centerX = self.victoryHeader.centerX; self.defeatedHeader = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"user_header_placehoulder"]]; self.defeatedHeader.contentMode = UIViewContentModeScaleAspectFill; self.defeatedHeader.frame = CGRectMake(self.bgView.width-ScaleWidth(34+50), self.bgImageView.bottom-ScaleWidth(50+55), ScaleWidth(50), ScaleWidth(50)); [self.defeatedHeader addRoundedCornersWithRadius:ScaleWidth(25)]; [self.bgView addSubview:self.defeatedHeader]; self.defeatedNameLabel = [[UILabel alloc] initWithFrame:CGRectMake(self.defeatedHeader.left-ScaleWidth(18), self.defeatedHeader.bottom+5, ScaleWidth(50+36), 20)]; self.defeatedNameLabel.font = [UIFont systemFontOfSize:12]; self.defeatedNameLabel.textColor = [UIColor whiteColor]; self.defeatedNameLabel.textAlignment = NSTextAlignmentCenter; self.defeatedNameLabel.text = @"李四"; [self.bgView addSubview:self.defeatedNameLabel]; self.defeatedImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, self.defeatedHeader.bottom-ScaleWidth(17)+5, ScaleWidth(15), ScaleWidth(17))]; self.defeatedImageView.image = [UIImage imageNamed:@"room_pk_defeated"]; self.defeatedImageView.centerX = self.defeatedHeader.centerX; [self.bgView addSubview:self.defeatedImageView]; [self setType:_type]; } -(void)setType:(QXRoomPKResulttType)type{ _type = type; NSString *imageName = @""; switch (_type) { case QXRoomPKResulttTypeVictory: imageName = @"room_pk_result_victory"; break; case QXRoomPKResulttTypeDefeated: imageName = @"room_pk_result_defeated"; break; case QXRoomPKResulttTypeTie: imageName = @"room_pk_result_tie"; break; default: break; } self.bgImageView.image = [UIImage imageNamed:imageName]; } -(void)setResultWithVictory_name:(NSString *)victory_name victory_cover:(NSString *)victory_cover defeated_name:(NSString *)defeated_name defeated_cover:(NSString *)defeated_cover{ switch (self.type) { case QXRoomPKResulttTypeVictory:{ [self.victoryHeader sd_setImageWithURL:[NSURL URLWithString:victory_cover]]; self.victoryNameLabel.text = victory_name; self.victoryImageView.hidden = NO; self.victoryImageView.image = [UIImage imageNamed:@"room_pk_victory"]; [self.defeatedHeader sd_setImageWithURL:[NSURL URLWithString:defeated_cover]]; self.defeatedNameLabel.text = defeated_name; self.defeatedImageView.hidden = NO; self.defeatedImageView.image = [UIImage imageNamed:@"room_pk_defeated"]; } break; case QXRoomPKResulttTypeDefeated:{ [self.victoryHeader sd_setImageWithURL:[NSURL URLWithString:defeated_cover]]; self.victoryNameLabel.text = defeated_name; self.victoryImageView.hidden = NO; self.victoryImageView.image = [UIImage imageNamed:@"room_pk_defeated"]; [self.defeatedHeader sd_setImageWithURL:[NSURL URLWithString:victory_cover]]; self.defeatedNameLabel.text = victory_name; self.defeatedImageView.hidden = NO; self.defeatedImageView.image = [UIImage imageNamed:@"room_pk_victory"]; } break; case QXRoomPKResulttTypeTie:{ [self.victoryHeader sd_setImageWithURL:[NSURL URLWithString:victory_cover]]; self.victoryNameLabel.text = victory_name; self.victoryImageView.hidden = YES; [self.defeatedHeader sd_setImageWithURL:[NSURL URLWithString:defeated_cover]]; self.defeatedNameLabel.text = defeated_name; self.defeatedImageView.hidden = YES; } break; default: break; } } -(void)showInView:(UIView *)view{ MJWeakSelf __block int timeCount = 3; _timer = [QXTimer scheduledTimerWithTimeInterval:1 repeats:YES queue:dispatch_get_main_queue() block:^{ timeCount--; if (timeCount<=0) { [weakSelf hide]; } }]; self.bgView.alpha = 0; [view addSubview:self]; [UIView animateWithDuration:0.2 animations:^{ self.bgView.alpha = 1; }]; } -(void)hide{ if (_timer) { [self->_timer invalidate]; _timer = nil; } [UIView animateWithDuration:0.3 animations:^{ self.bgView.alpha = 0; } completion:^(BOOL finished) { [self removeFromSuperview]; }]; } @end