Files
featherVoice/QXLive/Room(房间)/View/PK/QXRoomPKResultView.m

177 lines
7.0 KiB
Mathematica
Raw Normal View History

2025-08-08 10:49:36 +08:00
//
// 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