@@ -84,6 +84,8 @@
@ property ( nonatomic , assign ) BOOL isReceivePKResult ;
// / pk 详 情
@ property ( nonatomic , strong ) RoomPKInfoModel * roomPKInfo ;
// / 是 否 正 在 进 行 中
@ property ( nonatomic , assign ) BOOL isPlaying ;
@ end
@@ -284,79 +286,8 @@
} roomUid : roomUid ] ;
}
- ( void ) startRoomPKCountDown : ( CGFloat ) time {
__block long tempTime = time ; // 倒 计 时 时 间
__weak typeof ( self ) weakSelf = self ;
self . currentTime = tempTime ;
if ( self . timer ! = nil ) {
dispatch_source _cancel ( self . timer ) ;
}
dispatch_queue _t queue = dispatch_get _global _queue ( DISPATCH_QUEUE _PRIORITY _DEFAULT , 0 ) ;
self . timer = dispatch_source _create ( DISPATCH_SOURCE _TYPE _TIMER , 0 , 0 , queue ) ;
dispatch_source _set _timer ( self . timer , dispatch_walltime ( NULL , 0 ) , 1.0 * NSEC_PER _SEC , 0 ) ; // 每 秒 执 行
dispatch_source _set _event _handler ( self . timer , ^ {
typeof ( weakSelf ) self = weakSelf ;
if ( tempTime <= 0 ) { // 倒 计 时 结 束 , 关 闭
self . currentTime = 0 ;
dispatch_source _cancel ( self . timer ) ;
dispatch_async ( dispatch_get _main _queue ( ) , ^ {
[ self checkRoomPKResult ] ;
} ) ;
} else {
dispatch_async ( dispatch_get _main _queue ( ) , ^ {
// 设 置 按 钮 显 示 读 秒 效 果
NSInteger minute = tempTime / 60 ;
NSInteger second = ( tempTime % 60 ) ;
NSString * timeStr = [ NSString stringWithFormat : @ "%02zd:%02zd" , minute , second ] ;
self . timeLabel . text = timeStr ;
self . roomPKPlayingView . currentTime = timeStr ;
} ) ;
tempTime - - ;
self . currentTime = tempTime ;
}
} ) ;
dispatch_resume ( self . timer ) ;
}
- ( void ) stopRoomPKCountDown {
if ( self . timer ) {
dispatch_source _cancel ( _timer ) ;
_timer = nil ;
}
}
- ( void ) clearRoomPKTeamData {
[ self . roomPKPlayingView clearRoomPKData ] ;
self . redScoreLabel . text = @ "0" ;
self . blueScoreLabel . text = @ "0" ;
self . redTeamScore = 0 ;
self . blueTeamScore = 0 ;
[ self . redTeamGiftPersonDic removeAllObjects ] ;
[ self . redTeamGiftPersonDic removeAllObjects ] ;
self . timeLabel . text = @ "未开始" ;
[ self . redProgressView mas_updateConstraints : ^ ( MASConstraintMaker * make ) {
make . width . mas_equalTo ( 85 ) ;
} ] ;
}
- ( void ) configRedTeamScore : ( long ) redTeamScore blueTeamScore : ( long ) blueTeamScore {
self . redTeamScore = redTeamScore ;
self . blueTeamScore = blueTeamScore ;
self . redScoreLabel . text = [ NSString stringWithFormat : @ "%ld" , redTeamScore ] ;
self . blueScoreLabel . text = [ NSString stringWithFormat : @ "%ld" , blueTeamScore ] ;
if ( redTeamScore > 0 || blueTeamScore > 0 ) {
CGFloat redScale = ( CGFloat ) redTeamScore / ( CGFloat ) ( redTeamScore + blueTeamScore ) ;
if ( redScale = = 1 ) {
redScale = 0.99 ;
}
[ self . redProgressView mas_updateConstraints : ^ ( MASConstraintMaker * make ) {
make . width . mas_equalTo ( 85 * 2 * redScale ) ;
} ] ;
}
[ self . roomPKPlayingView configRedTeamScore : redTeamScore blueTeamScore : blueTeamScore ] ;
- ( BOOL ) isRoomPKPlaying {
return self . isPlaying ;
}
# pragma mark - 查 询 pk 结 果 的
@@ -576,6 +507,7 @@
}
- ( void ) handleRoomPKInfoChangeState {
self . isPlaying = NO ;
if ( self . roomPKInfo ) {
switch ( _roomPKInfo . pkStatus ) {
case RoomPKStatusType_End :
@@ -585,6 +517,7 @@
{
[ TTPopup dismiss ] ;
self . beginButton . hidden = YES ;
self . isPlaying = YES ;
self . roomPKPlayingView . pkDetailInfo = self . roomPKInfo ;
self . roomPKPlayingView . redChooseArray = self . redChooseArray ;
self . roomPKPlayingView . blueChooseArray = self . blueChooseArray ;
@@ -661,6 +594,79 @@
return @ "" ;
}
- ( void ) startRoomPKCountDown : ( CGFloat ) time {
__block long tempTime = time ; // 倒 计 时 时 间
__weak typeof ( self ) weakSelf = self ;
self . currentTime = tempTime ;
if ( self . timer ! = nil ) {
dispatch_source _cancel ( self . timer ) ;
}
dispatch_queue _t queue = dispatch_get _global _queue ( DISPATCH_QUEUE _PRIORITY _DEFAULT , 0 ) ;
self . timer = dispatch_source _create ( DISPATCH_SOURCE _TYPE _TIMER , 0 , 0 , queue ) ;
dispatch_source _set _timer ( self . timer , dispatch_walltime ( NULL , 0 ) , 1.0 * NSEC_PER _SEC , 0 ) ; // 每 秒 执 行
dispatch_source _set _event _handler ( self . timer , ^ {
typeof ( weakSelf ) self = weakSelf ;
if ( tempTime <= 0 ) { // 倒 计 时 结 束 , 关 闭
self . currentTime = 0 ;
dispatch_source _cancel ( self . timer ) ;
dispatch_async ( dispatch_get _main _queue ( ) , ^ {
[ self checkRoomPKResult ] ;
} ) ;
} else {
dispatch_async ( dispatch_get _main _queue ( ) , ^ {
// 设 置 按 钮 显 示 读 秒 效 果
NSInteger minute = tempTime / 60 ;
NSInteger second = ( tempTime % 60 ) ;
NSString * timeStr = [ NSString stringWithFormat : @ "%02zd:%02zd" , minute , second ] ;
self . timeLabel . text = timeStr ;
self . roomPKPlayingView . currentTime = timeStr ;
} ) ;
tempTime - - ;
self . currentTime = tempTime ;
}
} ) ;
dispatch_resume ( self . timer ) ;
}
- ( void ) stopRoomPKCountDown {
if ( self . timer ) {
dispatch_source _cancel ( _timer ) ;
_timer = nil ;
}
}
- ( void ) clearRoomPKTeamData {
[ self . roomPKPlayingView clearRoomPKData ] ;
self . redScoreLabel . text = @ "0" ;
self . blueScoreLabel . text = @ "0" ;
self . redTeamScore = 0 ;
self . blueTeamScore = 0 ;
[ self . redTeamGiftPersonDic removeAllObjects ] ;
[ self . redTeamGiftPersonDic removeAllObjects ] ;
self . timeLabel . text = @ "未开始" ;
[ self . redProgressView mas_updateConstraints : ^ ( MASConstraintMaker * make ) {
make . width . mas_equalTo ( 85 ) ;
} ] ;
}
- ( void ) configRedTeamScore : ( long ) redTeamScore blueTeamScore : ( long ) blueTeamScore {
self . redTeamScore = redTeamScore ;
self . blueTeamScore = blueTeamScore ;
self . redScoreLabel . text = [ NSString stringWithFormat : @ "%ld" , redTeamScore ] ;
self . blueScoreLabel . text = [ NSString stringWithFormat : @ "%ld" , blueTeamScore ] ;
if ( redTeamScore > 0 || blueTeamScore > 0 ) {
CGFloat redScale = ( CGFloat ) redTeamScore / ( CGFloat ) ( redTeamScore + blueTeamScore ) ;
if ( redScale = = 1 ) {
redScale = 0.99 ;
}
[ self . redProgressView mas_updateConstraints : ^ ( MASConstraintMaker * make ) {
make . width . mas_equalTo ( 85 * 2 * redScale ) ;
} ] ;
}
[ self . roomPKPlayingView configRedTeamScore : redTeamScore blueTeamScore : blueTeamScore ] ;
}
# pragma mark - XPRoomPKPanelUserViewDelegate
- ( void ) xPRoomPKPanelUserView : ( XPRoomPKPanelUserView * ) view didClickAddButton : ( GroupType ) type {