您的位置:首页 > 移动开发 > IOS开发

关于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.显示简单弹窗

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开发