关于iOS开发常用代码整理
2016-12-12 16:08
309 查看
差不多做完了一个iOS项目,就把个人觉得比较有用的iOS开发代码整理一下。
1.判断邮箱或者手机格式是否正确的代码
2.生成二维码
3.隐藏Status Bar
4.获取系统当前语言
5.禁止锁屏
6.修改键盘按钮return回收键盘
7.获取当前的日期,时间,星期几
8.随机数
9.头像圆形
10.获取当前scrollView的页数
11.单例的写法
12.显示简单弹窗
本次整理下来就这么多,之后还有会另外补充,准备苦B的期末复习去了。
1.判断邮箱或者手机格式是否正确的代码
2.生成二维码
3.隐藏Status Bar
4.获取系统当前语言
5.禁止锁屏
6.修改键盘按钮return回收键盘
7.获取当前的日期,时间,星期几
8.随机数
9.头像圆形
10.获取当前scrollView的页数
11.单例的写法
12.显示简单弹窗
1.判断邮箱或者手机格式是否正确的代码
//手机号码的正则表达式 - (BOOL)isValidateMobile:(NSString *)mobile{ /** * 手机号码 * 移动:134[0-8],135,136,137,138,139,150,151,157,158,159,182,187,188 * 联通:130,131,132,152,155,156,185,186 * 电信:133,1349,153,180,189,181(增加) */ NSString * MOBIL = @"^1(3[0-9]|5[0-35-9]|8[025-9])\\d{8}$"; /** 10 * 中国移动:China Mobile 11 * 134[0-8],135,136,137,138,139,150,151,157,158,159,182,187,188 12 */ NSString * CM = @"^1(34[0-8]|(3[5-9]|5[017-9]|8[2378])\\d)\\d{7}$"; /** 15 * 中国联通:China Unicom 16 * 130,131,132,152,155,156,185,186 17 */ NSString * CU = @"^1(3[0-2]|5[256]|8[56])\\d{8}$"; /** 20 * 中国电信:China Telecom 21 * 133,1349,153,180,189,181(增加) 22 */ NSString * CT = @"^1((33|53|8[019])[0-9]|349)\\d{7}$"; NSPredicate *regextestmobile = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", MOBIL]; NSPredicate *regextestcm = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CM]; NSPredicate *regextestcu = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CU]; NSPredicate *regextestct = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CT]; if (([regextestmobile evaluateWithObject:mobile] || [regextestcm evaluateWithObject:mobile] || [regextestct evaluateWithObject:mobile] || [regextestcu evaluateWithObject:mobile])) { return YES; } return NO; } //邮箱地址的正则表达式 - (BOOL)isValidateEmail:(NSString *)email{ NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}"; NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex]; return [emailTest evaluateWithObject:email]; }
2.生成二维码
- (void)SetQRCodeWithStr:(NSString *)allInfoStr{ CIFilter *filter = [CIFilter filterWithName:@"CIQRCodeGenerator"]; [filter setDefaults]; NSData *data = [allInfoStr dataUsingEncoding:NSUTF8StringEncoding]; [filter setValue:data forKeyPath:@"inputMessage"]; CIImage *qrcodeImage = [filter outputImage]; self.qrCodeView.image = [self createNonInterpolatedUIImageFormCIImage:qrcodeImage withSize:200]; } /** * 根据CIImage生成指定大小的UIImage * * @param image CIImage * @param size 图片宽度 */ - (UIImage *)createNonInterpolatedUIImageFormCIImage:(CIImage *)image withSize:(CGFloat) size { CGRect extent = CGRectIntegral(image.extent); CGFloat scale = MIN(size/CGRectGetWidth(extent), size/CGRectGetHeight(extent)); // 1.创建bitmap; size_t width = CGRectGetWidth(extent) * scale; size_t height = CGRectGetHeight(extent) * scale; CGColorSpaceRef cs = CGColorSpaceCreateDeviceGray(); CGContextRef bitmapRef = CGBitmapContextCreate(nil, width, height, 8, 0, cs, (CGBitmapInfo)kCGImageAlphaNone); CIContext *context = [CIContext contextWithOptions:nil]; CGImageRef bitmapImage = [context createCGImage:image fromRect:extent]; CGContextSetInterpolationQuality(bitmapRef, kCGInterpolationNone); CGContextScaleCTM(bitmapRef, scale, scale); CGContextDrawImage(bitmapRef, extent, bitmapImage); // 2.保存bitmap到图片 CGImageRef scaledImage = CGBitmapContextCreateImage(bitmapRef); CGContextRelease(bitmapRef); CGImageRelease(bitmapImage); return [UIImage imageWithCGImage:scaledImage]; }
3.隐藏Status Bar
[[UIApplication sharedApplication]setStatusBarHidden:YES animated:NO];
4.获取系统当前语言
NSString *currentLanguage = [[NSLocale preferredLanguages] objectAtIndex:0]; if ([currentLanguage containsString:@"zh-Hans"]) { NSLog(@"zh-Hans简体中文"); }else if ([currentLanguage containsString:@"zh-Hant"]) { NSLog(@"zh-Hant繁体中文"); }
5.禁止锁屏
//第一种 [UIApplication sharedApplication].idleTimerDisabled = YES; //第二种 [[UIApplication sharedApplication] setIdleTimerDisabled:YES];
6.修改键盘按钮return回收键盘
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{ if ([string isEqualToString:@"\n"]) { [textField resignFirstResponder]; return NO; } return YES; }
7.获取当前的日期,时间,星期几
NSDate *date = [NSDate date]; NSCalendar *calendar = [NSCalendar currentCalendar]; NSDateComponents *comps; // 年月日获得 comps = [calendar components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit) fromDate:date]; NSInteger year = [comps year]; NSInteger month = [comps month]; NSInteger day = [comps day]; NSLog( @" year: %d month: %d, day: %d ", year, month, day); // 当前的时分秒获得 comps = [calendar components:(NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit) fromDate:date]; NSInteger hour = [comps hour]; NSInteger minute = [comps minute]; NSInteger second = [comps second]; NSLog( @" hour: %d minute: %d second: %d ", hour, minute, second); // 周几和星期几获得 comps = [calendar components:(NSWeekCalendarUnit | NSWeekdayCalendarUnit | NSWeekdayOrdinalCalendarUnit) fromDate:date]; NSInteger week = [comps week]; // 今年的第几周 NSInteger weekday = [comps weekday]; // 星期几(注意,周日是“1”,周一是“2”。。。。) NSInteger weekdayOrdinal = [comps weekdayOrdinal]; // 这个月的第几周 NSLog( @" week: %d weekday: %d weekday ordinal: %d ", week, weekday, weekdayOrdinal);
8.随机数
srand((unsigned)time(0)); int i1 = rand() % 5; srandom(time(0)); int i2 = random() % 5; int i3 = arc4random() % 5 //(常用) ;
9.头像圆形
UIImageView *icon = [[UIImageView alloc] initWithFrame:CGRectMake((SCREEN_WIDTH-60)/2, 20, 60, 60)]; icon.layer.masksToBounds = YES; icon.layer.cornerRadius = icon.bounds.size.width/2; icon.image=[UIImage imageNamed:@"icon.png"]; [self.contentView addSubview:icon];
10.获取当前scrollView的页数
int currentPage = floor((self.scrollView.contentOffset.x - SCREEN_WIDTH / 2) / SCREEN_WIDTH) + 1;
11.单例的写法
+ (Manager *)defaultManager { static Manager *_sharedInstance; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ _sharedInstance = [[Manager alloc]init]; }); return _sharedInstance; }
12.显示简单弹窗
+ (void)showAlertViewWithMessage:(NSString *)message { UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"" message:message delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; [alertView show]; }
13.打开相机
//打开相机 -(void)useCamera{ if ([UIImagePickerController isSourceTypeAvailable:(UIImagePickerControllerSourceTypeCamera)]) { UIImagePickerControllerSourceType sourceType = UIImagePickerControllerSourceTypeCamera; UIImagePickerController *picker = [[UIImagePickerController alloc] init];//初始化 picker.delegate = self; picker.allowsEditing = YES;//设置可编辑 picker.sourceType = sourceType; [self presentModalViewController:picker animated:YES];//进入照相界面 } else{ UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"错误!" message:@"你没有摄像头" delegate:nil cancelButtonTitle:@"关闭" otherButtonTitles:nil, nil]; [alert show]; } } -(void)openPhoto{ UIImagePickerController *imagepickercontroller [[UIImagePickerController alloc]init]; imagepickercontroller.delegate=self; imagepickercontroller.allowsEditing=YES; imagepickercontroller.sourceType=UIImagePickerControllerSourceTypePhotoLibrary; [self presentViewController:imagepickercontroller animated:YES completion:nil]; } // 选取完照片后所触发的方法 - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { [picker dismissModalViewControllerAnimated:YES]; _iconImageView.image = [info objectForKey:@"UIImagePickerControllerOriginalImage"]; NSData *data = UIImagePNGRepresentation(_iconImageView.image); NSLog(@"data==%@",data); }
本次整理下来就这么多,之后还有会另外补充,准备苦B的期末复习去了。
相关文章推荐
- iOS开发之17个常用代码整理
- iOS开发常用代码片段整理
- ios开发 常用代码整理
- iOS开发常用代码片段整理
- IOS开发中17个常用代码整理
- iOS开发之17个常用代码整理
- iOS开发常用代码片段整理
- IOS开发-OC学习-常用功能代码片段整理
- iOS开发之17个常用代码整理
- ios开发 17个常用代码整理
- iOS开发之17个常用代码整理
- iOS开发中 常用代码整理
- iOS开发常用代码片段整理
- iOS开发之17个常用代码整理
- iOS项目开发经验:【常用代码7】
- iOS项目开发经验:【常用代码4】
- iOS开发常见错误代码对照表整理
- iOS项目开发经验:【常用代码3】
- iOS 17个常用代码整理
- iOS项目开发经验:【常用代码6】