关于iOS开发常用代码整理
来源:互联网 发布:od矩阵的作用 编辑:程序博客网 时间:2024/05/29 17:54
差不多做完了一个iOS项目,就把个人觉得比较有用的iOS开发代码整理一下。
- 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的期末复习去了。
1 0
- 关于iOS开发常用代码整理
- ios开发 常用代码整理
- iOS开发常用代码片段整理
- ios开发 17个常用代码整理
- iOS开发中 常用代码整理
- iOS开发常用代码片段整理
- IOS常用代码整理
- IOS常用代码整理
- IOS常用代码整理
- IOS 常用代码整理
- IOS常用代码整理
- iOS开发之17个常用代码整理
- IOS开发中17个常用代码整理
- iOS开发之17个常用代码整理
- iOS 常用代码整理
- iOS开发常用尺寸整理
- IOS---------------------------开发常用代码
- ios 开发常用代码
- 64位windows安装PIL
- 【HNOI2007】bzoj1189 紧急疏散
- intellij idea 工具初体验 设置字体背景色 整理快捷键
- android 的语言适配
- javascript 日期操作 最后一天获取
- 关于iOS开发常用代码整理
- 杂谈
- 【Visual Studio】 VS中添加头文件和lib库的方法
- WebApp网页真机调试工具-(Android)
- HDU1003 Max Sum(DP)
- AFNetworking post和get请求笔迹
- Solr配置IK分词器自定义词库
- UGUI学习笔记1
- 查询数据库的表的数目