关于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
原创粉丝点击