常用代码1
一,计算 label 宽度
1 - (CGFloat)getCurExpLabelBgWidth:(NSString *)str 2 { 3 str = ISSTRING(str) ? str : @"0"; 4 UILabel *label = [[UILabel alloc] init]; 5 CGFloat fontSize = 12 * kBigScreenViewWidthRate; 6 label.font = [[PTVConfig instance] normalFont:fontSize]; 7 label.text = str; 8 CGRect rect = [label textRectForBounds:CGRectMake(0, 0, MAXFLOAT, fontSize ) limitedToNumberOfLines:1]; 9 CGFloat length = rect.size.width; 10 return length; 11 }
二,判断字符串中是否包含英文字母
1 - (BOOL)isStringContainNumberWith:(NSString *)str { 2 NSRegularExpression *numberRegular = [NSRegularExpression regularExpressionWithPattern:@"[A-Za-z]" options:NSRegularExpressionCaseInsensitive error:nil]; 3 NSInteger count = [numberRegular numberOfMatchesInString:str options:NSMatchingReportProgress range:NSMakeRange(0, str.length)]; 4 //count是str中包含[A-Za-z]数字的个数,只要count>0,说明str中包含数字 5 if (count > 0) { 6 return YES; 7 } 8 return NO; 9 }
三,从横屏跳转到竖屏
1 if (!([PTVConfig instance].orotatemask == UIInterfaceOrientationMaskPortrait)) 2 { 3 4 [PTVConfig instance].orotatemask = UIInterfaceOrientationMaskPortrait; 5 [[PTVConfig instance] setOrientation:UIDeviceOrientationPortrait]; 6 [UIViewController attemptRotationToDeviceOrientation]; 7 } 8 [GETVIEWCONTROLLERMGR pushLoginController:self.parentVc.navigationController];
四,带秒表的定时器
1 - (void)startPkTimer 2 { 3 _percens = 100; 4 [self removeCountTimer]; 5 _timer = [NSTimer scheduledTimerWithTimeInterval:0.05 target:self selector:@selector(_timerAction) userInfo:nil repeats:YES]; 6 [[NSRunLoop currentRunLoop] addTimer:_timer forMode:NSRunLoopCommonModes]; 7 } 8 9 - (void)_timerAction 10 { 11 _percens -= 5 ; 12 if(_percens <= 0){ 13 _countWownTimer -= 1; 14 _percens = 100; 15 } 16 NSLog(@"lz465350===>%li---%li",(long)_countWownTimer,(long)_percens); 17 if (_countWownTimer <= -1 ) { 18 dispatch_async(dispatch_get_main_queue(), ^{ 19 if (self.timerFinished) 20 { 21 self.timerFinished(); 22 } 23 [self removeCountTimer]; 24 }); 25 return; 26 } else { 27 NSString *text = [self getTimerText:_countWownTimer percens:_percens]; 28 dispatch_async(dispatch_get_main_queue(), ^{ 29 self.text = text; 30 }); 31 } 32 }