iOS开发中一些实用小代码(持续更新-2016年11月7日)
2016-11-07 17:40
579 查看
声明:原文地址:http://mobile.51cto.com/iphone-387111.htm
本文介绍了一些实际开发过程中的简单的小功能代码,也可以说是iOS开发中一些实用小代码。本人在前人整理的基础上补充了一点
下面开始按功能介绍iOS开发中一些实用小代码。
判断邮箱格式是否正确的代码
图片压缩
亲测可用的图片上传代码
给imageView加载图片
对图库的操作
跳到下个View
创建一个UIBarButton右边按钮
设置navigationBar隐藏
设置bottombar隐藏补充
UIlabel多行文字自动换行 自动折行
代码生成Button
让某个控件在View的中心位置显示
自定义cell中text各种效果
隐藏statusBar
更改AlertView背景
键盘透明
状态栏的网络活动风火轮是否旋转
截取屏幕图片
更改cell选中的背景
显示图片
能让图片适应框的大小beta
实现点击图片进行跳转的代码生成一个带有背景图片的button给button绑定想要的事件
键盘回收
上面第九个和下面都是我补充的内容
隐藏状态栏电池信号运营商等
禁止横屏
26设置启动界面停留时间
URL encode编码和解码
目录
//压缩图片
选择完毕:
detect为自己定义的方法,编辑选取照片后要实现的效果
取消选择:
注意: 对于有navigation导航栏的跳转方式,可以用[self.navigationController pushViewController:[[SecondViewController alloc]init] animated:YES]; 参看:UINavigation的一些常用用法
注意: -(BOOL)hidesBottomBarWhenPushed
{
return YES;
}
改成:
self.navigationController.hidesBottomBarWhenPushed = YES;
则,底部bottombar无论如何也不会消失
若改成:
self.tabBarController.tabBar.hidden = YES;
则,底部bottombar将在页面跳转后永远消失,即使返回上级页面也不会出现
补充: 详细参看:UILabel中文本排布的一些常见写法
通过点击背景回收键盘:(两个都得添加)
补充:详细参看:IOS点击键盘以外空白区域隐藏键盘的3种常见写法
注意:其中,sleepForTimeInterval:后面的参数单位是秒,数值大小大于0。
具体参看:IOS中如何设置启动界面的停留时间
附:URL在线解析: UrlEncode编码/UrlDecode解码 - 站长工具
判断邮箱格式是否正确的代码
图片压缩
亲测可用的图片上传代码
给imageView加载图片
对图库的操作
跳到下个View
创建一个UIBarButton右边按钮
设置navigationBar隐藏
设置bottombar隐藏补充
UIlabel多行文字自动换行 自动折行
代码生成Button
让某个控件在View的中心位置显示
自定义cell中text各种效果
隐藏statusBar
更改AlertView背景
键盘透明
状态栏的网络活动风火轮是否旋转
截取屏幕图片
更改cell选中的背景
显示图片
能让图片适应框的大小beta
实现点击图片进行跳转的代码生成一个带有背景图片的button给button绑定想要的事件
键盘回收
上面第九个和下面都是我补充的内容
隐藏状态栏电池信号运营商等
禁止横屏
26设置启动界面停留时间
URL encode编码和解码
目录
本文介绍了一些实际开发过程中的简单的小功能代码,也可以说是iOS开发中一些实用小代码。本人在前人整理的基础上补充了一点
下面开始按功能介绍iOS开发中一些实用小代码。
目录
目录判断邮箱格式是否正确的代码
图片压缩
亲测可用的图片上传代码
给imageView加载图片
对图库的操作
跳到下个View
创建一个UIBarButton右边按钮
设置navigationBar隐藏
设置bottombar隐藏补充
UIlabel多行文字自动换行 自动折行
代码生成Button
让某个控件在View的中心位置显示
自定义cell中text各种效果
隐藏statusBar
更改AlertView背景
键盘透明
状态栏的网络活动风火轮是否旋转
截取屏幕图片
更改cell选中的背景
显示图片
能让图片适应框的大小beta
实现点击图片进行跳转的代码生成一个带有背景图片的button给button绑定想要的事件
键盘回收
上面第九个和下面都是我补充的内容
隐藏状态栏电池信号运营商等
禁止横屏
26设置启动界面停留时间
URL encode编码和解码
目录
1.判断邮箱格式是否正确的代码:
//利用正则表达式验证-(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.图片压缩
用法:UIImage *yourImage= [self imageWithImageSimple:image scaledToSize:CGSizeMake(210.0, 210.0)];//压缩图片
- (UIImage*)imageWithImageSimple:(UIImage*)image scaledToSize:(CGSize)newSize { // Create a graphics image context UIGraphicsBeginImageContext(newSize); // Tell the old image to draw in this newcontext, with the desired // new size [image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)]; // Get the new image from the context UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext(); // End the context UIGraphicsEndImageContext(); // Return the new image. return newImage; }
3.亲测可用的图片上传代码
- (IBAction)uploadButton:(id)sender { UIImage *image = [UIImage imageNamed:@"1.jpg"]; //图片名 NSData *imageData = UIImageJPEGRepresentation(image,0.5);//压缩比例 NSLog(@"字节数:%i",[imageData length]); // post url NSString *urlString = @"http://192.168.1.113:8090/text/UploadServlet"; //服务器地址 // setting up the request object now NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init] ; [request setURL:[NSURL URLWithString:urlString]]; [request setHTTPMethod:@"POST"]; // NSString *boundary = [NSString stringWithString:@"---------------------------14737809831466499882746641449"]; NSString *contentType = [NSString stringWithFormat:@"multipart/form-data;boundary=%@",boundary]; [request addValue:contentType forHTTPHeaderField: @"Content-Type"]; // NSMutableData *body = [NSMutableData data]; [body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]]; [body appendData:[[NSString stringWithString:@"Content-Disposition:form-data; name=\"userfile\"; filename=\"2.png\"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; //上传上去的图片名字 [body appendData:[[NSString stringWithString:@"Content-Type: application/octet-stream\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; [body appendData:[NSData dataWithData:imageData]]; [body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]]; [request setHTTPBody:body]; // NSLog(@"1-body:%@",body); NSLog(@"2-request:%@",request); NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding]; NSLog(@"3-测试输出:%@",returnString); }
4.给imageView加载图片
UIImage *myImage = [UIImage imageNamed:@"1.jpg"]; [imageView setImage:myImage]; [self.view addSubview:imageView];
5.对图库的操作
UIImagePickerControllerSourceTypesourceType=UIImagePickerControllerSourceTypeCamera; if (![UIImagePickerControllerisSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { sourceType=UIImagePickerControllerSourceTypePhotoLibrary; } UIImagePickerController * picker = [[UIImagePickerControlleralloc]init]; picker.delegate = self; picker.allowsEditing=YES; picker.sourceType=sourceType; [self presentModalViewController:picker animated:YES];
选择完毕:
-(void)imagePickerController:(UIImagePickerController*)pickerdidFinishPickingMediaWithInfo:(NSDictionary *)info { [picker dismissModalViewControllerAnimated:YES]; UIImage * image=[info objectForKey:UIImagePickerControllerEditedImage]; [self performSelector:@selector(selectPic:) withObject:imageafterDelay:0.1]; } -(void)selectPic:(UIImage*)image { NSLog(@"image%@",image); imageView = [[UIImageView alloc] initWithImage:image]; imageView.frame = CGRectMake(0, 0, image.size.width, image.size.height); [self.viewaddSubview:imageView]; [self performSelectorInBackground:@selector(detect:) withObject:nil]; }
detect为自己定义的方法,编辑选取照片后要实现的效果
取消选择:
-(void)imagePickerControllerDIdCancel:(UIImagePickerController*)picker { [picker dismissModalViewControllerAnimated:YES]; }
6.跳到下个View
nextWebView = [[WEBViewController alloc] initWithNibName:@"WEBViewController" bundle:nil]; [self presentModalViewController:nextWebView animated:YES];
注意: 对于有navigation导航栏的跳转方式,可以用[self.navigationController pushViewController:[[SecondViewController alloc]init] animated:YES]; 参看:UINavigation的一些常用用法
7.创建一个UIBarButton右边按钮
UIBarButtonItem *rightButton = [[UIBarButtonItem alloc] initWithTitle:@"右边" style:UIBarButtonItemStyleDone target:self action:@selector(clickRightButton)]; [self.navigationItem setRightBarButtonItem:rightButton];
8.设置navigationBar隐藏
self.navigationController.navigationBarHidden = YES;//
9.设置bottombar隐藏【补充】
页面跳转后消失,返回上级页面出现:-(BOOL)hidesBottomBarWhenPushed { return YES; }
注意: -(BOOL)hidesBottomBarWhenPushed
{
return YES;
}
改成:
self.navigationController.hidesBottomBarWhenPushed = YES;
则,底部bottombar无论如何也不会消失
若改成:
self.tabBarController.tabBar.hidden = YES;
则,底部bottombar将在页面跳转后永远消失,即使返回上级页面也不会出现
10.UIlabel多行文字自动换行 (自动折行)
UIView *footerView = [[UIView alloc]initWithFrame:CGRectMake(10, 100, 300, 180)]; UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(10, 100, 300, 150)]; label.text = @"Hello world! Hello world!Hello world! Hello world! Hello world! Hello world! Hello world! Hello world!Hello world! Hello world! Hello world! Hello world! Hello world! Helloworld!"; //背景颜色为红色 label.backgroundColor = [UIColor redColor]; //设置字体颜色为白色 label.textColor = [UIColor whiteColor]; //文字居中显示 label.textAlignment = UITextAlignmentCenter; //自动折行设置 label.lineBreakMode = UILineBreakModeWordWrap; label.numberOfLines = 0;
补充: 详细参看:UILabel中文本排布的一些常见写法
11.代码生成Button
CGRect frame = CGRectMake(0, 400, 72.0, 37.0); UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; button.frame = frame; [button setTitle:@"新添加的按钮" forState: UIControlStateNormal]; button.backgroundColor = [UIColor clearColor]; button.tag = 2000; [button addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:button];
12.让某个控件在View的中心位置显示:
label.center = self.view.center;//(某个控件,比如label,View)
13.自定义cell中text各种效果:
cell.backgroundColor = [UIColorscrollViewTexturedBackgroundColor]; //设置文字的字体 cell.textLabel.font = [UIFont fontWithName:@"AmericanTypewriter" size:100.0f]; //设置文字的颜色 cell.textLabel.textColor = [UIColor orangeColor]; //设置文字的背景颜色 cell.textLabel.shadowColor = [UIColor whiteColor]; //设置文字的显示位置 cell.textLabel.textAlignment = UITextAlignmentCenter;
14.隐藏statusBar:
在程序的viewDidLoad中加入[[UIApplication sharedApplication]setStatusBarHidden:YES animated:NO];
15.更改AlertView背景:
UIAlertView *theAlert = [[[UIAlertViewalloc] initWithTitle:@"Atention" message: @"I'm a Chinese!" delegate:nil cancelButtonTitle:@"Cancel" otherButtonTitles:@"Okay",nil] autorelease]; [theAlert show]; UIImage *theImage = [UIImageimageNamed:@"loveChina.png"]; theImage = [theImage stretchableImageWithLeftCapWidth:0topCapHeight:0]; CGSize theSize = [theAlert frame].size; UIGraphicsBeginImageContext(theSize); [theImage drawInRect:CGRectMake(5, 5, theSize.width-10, theSize.height-20)];//这个地方的大小要自己调整,以适应alertview的背景颜色的大小。 theImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); theAlert.layer.contents = (id)[theImage CGImage];
16.键盘透明:
textField.keyboardAppearance = UIKeyboardAppearanceAlert;
17.状态栏的网络活动风火轮是否旋转:
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES ; //默认值是NO。
18.截取屏幕图片:
//创建一个基于位图的图形上下文并指定大小为CGSizeMake(200,400) UIGraphicsBeginImageContext(CGSizeMake(200,400)); //renderInContext 呈现接受者及其子范围到指定的上下文 [self.view.layer renderInContext:UIGraphicsGetCurrentContext()]; //返回一个基于当前图形上下文的图片 UIImage *aImage = UIGraphicsGetImageFromCurrentImageContext(); //移除栈顶的基于当前位图的图形上下文 UIGraphicsEndImageContext(); //以png格式返回指定图片的数据 imageData = UIImagePNGRepresentation(aImage);
19.更改cell选中的背景:
UIView *myview = [[UIView alloc] init]; myview.frame = CGRectMake(0, 0, 320, 47); myview.backgroundColor = [UIColorcolorWithPatternImage:[UIImage imageNamed:@"0006.png"]]; cell.selectedBackgroundView = myview;
20.显示图片:
CGRect myImageRect = CGRectMake(0.0f, 0.0f, 320.0f, 109.0f); UIImageView *myImage = [[UIImageView alloc] initWithFrame:myImageRect]; [myImage setImage:[UIImage imageNamed:@"myImage.png"]]; myImage.opaque = YES; //opaque是否透明 [self.view addSubview:myImage];
21.能让图片适应框的大小(beta)
NSString*imagePath = [[NSBundle mainBundle] pathForResource:@"XcodeCrash"ofType:@"png"]; UIImage *image = [[UIImage alloc]initWithContentsOfFile:imagePath]; UIImage *newImage= [image transformWidth:80.f height:240.f]; UIImageView *imageView = [[UIImageView alloc]initWithImage:newImage]; [newImagerelease]; [image release]; [self.view addSubview:imageView];
22.实现点击图片进行跳转的代码:(生成一个带有背景图片的button,给button绑定想要的事件)
UIButton *imgButton=[[UIButton alloc]initWithFrame:CGRectMake(0, 0, 120, 120)]; [imgButton setBackgroundImage:(UIImage *)[self.imgArray objectAtIndex:indexPath.row] forState:UIControlStateNormal]; imgButton.tag=[indexPath row]; [imgButton addTarget:self action:@selector(buttonClick:) forControlEvents:UIControlEventTouchUpInside];
23.键盘回收:
-(IBAction)textFieldDoneEditing:(id)sender{ [sender resighFirstRespond]; }
通过点击背景回收键盘:(两个都得添加)
-(IBAction)textFieldDoneEditing:(id)sender{ [sender resighFirstRespond]; } -(IBAction)backgroundTapped:(id)sender{ [nameField resignFirstRespond]; [numberField resignFirstRespond]; }
补充:详细参看:IOS点击键盘以外空白区域隐藏键盘的3种常见写法
上面第九个和下面都是我补充的内容:
24.隐藏状态栏(电池,信号,运营商等)
在APPDelegate.m中添加-(BOOL)prefersStatusBarHidden { return YES; }
25.禁止横屏
在APPDelegate.m中添加:-(NSInteger)application:(UIApplication * )application supportedInterfaceOrientationsForWindow:(nullable UIWindow *)window { return UIInterfaceOrientationMaskPortrait; }
26设置启动界面停留时间
在APPDelegate.m中第一个方法中添加如下代码:[NSThread sleepForTimeInterval:3];
注意:其中,sleepForTimeInterval:后面的参数单位是秒,数值大小大于0。
具体参看:IOS中如何设置启动界面的停留时间
27.URL encode编码和解码
+(NSString *)encodeString:(NSString *)unencodeString { NSString * encodedString = (NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)unencodeString, NULL, (CFStringRef)@"!*'();:@&=+$,/?%#[]", kCFStringEncodingUTF8)); return unencodeString; } -(NSString *)decodeString:(NSString *)encodedString { NSString * decodedString = (__bridge_transfer NSString *)CFURLCreateStringByReplacingPercentEscapesUsingEncoding(NULL, (__bridge CFStringRef)encodedString, CFSTR(""),CFStringConvertNSStringEncodingToEncoding(NSUTF8StringEncoding)); return encodedString; }
附:URL在线解析: UrlEncode编码/UrlDecode解码 - 站长工具
目录
目录判断邮箱格式是否正确的代码
图片压缩
亲测可用的图片上传代码
给imageView加载图片
对图库的操作
跳到下个View
创建一个UIBarButton右边按钮
设置navigationBar隐藏
设置bottombar隐藏补充
UIlabel多行文字自动换行 自动折行
代码生成Button
让某个控件在View的中心位置显示
自定义cell中text各种效果
隐藏statusBar
更改AlertView背景
键盘透明
状态栏的网络活动风火轮是否旋转
截取屏幕图片
更改cell选中的背景
显示图片
能让图片适应框的大小beta
实现点击图片进行跳转的代码生成一个带有背景图片的button给button绑定想要的事件
键盘回收
上面第九个和下面都是我补充的内容
隐藏状态栏电池信号运营商等
禁止横屏
26设置启动界面停留时间
URL encode编码和解码
目录
相关文章推荐
- 本篇文章,主要收录本人工作时iOS开发中代码写法的一些奇淫技巧,会持续更新中~
- iOS开发中一些有用的小代码(持续更新)
- iOS开发中一些小功能代码(持续更新)
- iOS开发中一些实用小代码。
- 【原】让代码轻盈地飞舞——IDEA13最实用的功能,全面提升开发效率(桌面java项目开发实战)持续更新中
- 在这里总结一些iOS开发中的小技巧,能大大方便我们的开发,持续更新。
- iOS 持续更新 开发中的一些小问题和技巧1
- IOS 开发的一些细节(持续更新)
- iOS一些实用demo(会持续更新的)
- iOS开发中一些实用小代码
- iOS学习笔记之开发实用小技巧(持续更新)
- ios开发相关的一些文章【持续更新】
- Ios 开发实用工具(持续更新)
- (持续更新)日积月累——iOS开发过程中遇到的一些小问题
- iOS开发中对于一些常用的相对路径(持续更新)
- iOS 开发过程中记录的一些小知识(持续更新...)
- iOS 开发实用工具(持续更新)
- iOS开发中一些实用小代码
- 一些比较好的iOS开发博客持续更新中
- iOS开发中一些实用小代码