177 lines
7.0 KiB
Mathematica
177 lines
7.0 KiB
Mathematica
|
|
//
|
||
|
|
// 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
|