iOS开发中最有用关键的代码合集
2015-02-26 15:44
513 查看
1.判断邮箱格式是否正确的代码:
2.图片压缩
3.亲测可用的图片上传代码
4.给imageView加载图片
5.对图库的操作
6.跳到下个View
7.创建一个UIBarButton右边按钮
9.UIlabel多行文字自动换行 (自动折行)
10.代码生成Button
10.2在xib文件中已经创建好Button,通过tag获取按钮
//按钮事件
11.让某个控件在View的中心位置显示:
(某个控件,比如 label , View ) label . center = self . view . center;
12.自定义text各种效果:
13.隐藏statusBar:
在程序的 viewDidLoad 中加入
14.更改AlertView背景:
15.键盘透明:
16.状态栏的网络活动风火轮是否旋转:
17.截取屏幕图片:
18.更改cell选中的背景:
19.显示图片:
20.能让图片适应框的大小(beta)
21. 实现点击图片进行跳转的代码:(生成一个带有背景图片的button,给button绑定想要的事件)
22.键盘回收:
1).增加一个button,相应touch down事件,隐藏键盘。这种方法,太山寨了。为了相应一个事件增加一个button太不值得的。
2).第二种方法:在背景图片上添加Tap事件,相应单击处理。这种方法,很好代替了button方式,但是如果UI上没有背景图片,这种方法又回到到第一种山寨的方法行列中。
// 添加带有处理时间的背景图片
UIImageView *backView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height)];
backView.image = [UIImage imageNamed:@"small3.png"];
backView.userInteractionEnabled = YES;
UITapGestureRecognizer *singleTouch = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismissKeyboard:)];
[backView addGestureRecognizer:singleTouch];
backView.tag = 110;
[self.view addSubview:backView];
-(void)dismissKeyboard:(id)sender{
[text resignFirstResponder];
}
3).在xib文件中,修改xib文件的objects属性,默认是view属性,我们可以修改为UIControl属性,从而是xib文件相应touch down事件。这种方法,缺点就是没有xib就悲剧了。
Gif的合成
24.将一个UIView对象的内容保存为UIImage
注意:生成的图片的scale和view的scale一致,这样才可以保证图片的效果和view显示的完全一致,使用renderInContext方法可以让subviews的内容也显示的图片里。
// 利用正则表达式验证 -( 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 ];
7.创建一个UIBarButton右边按钮
UIBarButtonItem *rightButton = [[ UIBarButtonItem alloc ] initWithTitle : @" 右边 " style : UIBarButtonItemStyleDone target : self action : @selector (clickRightButton)]; [ self . navigationItem setRightBarButtonItem :rightButton];
[align=left]8.设置navigationBar隐藏[/align][align=left] [/align]self . navigationController . navigationBarHidden = YES ;//
9.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;
10.代码生成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];
10.2在xib文件中已经创建好Button,通过tag获取按钮
UIButton *testButton= (UIButton*)[self.view viewWithTag:100]; [testButton addTarget:self action:@selector(test:) forControlEvents:UIControlEventTouchUpInside];
//按钮事件
-(void) test: (id) sender{ UIAlertView *av = [[[UIAlertView alloc] initWithTitle:@"ceshi" message:@"test11111" delegate:nil cancelButtonTitle:@"OK"otherButtonTitles:nil] autorelease]; [av show]; }
11.让某个控件在View的中心位置显示:
(某个控件,比如 label , View ) label . center = self . view . center;
12.自定义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;
13.隐藏statusBar:
在程序的 viewDidLoad 中加入
[[UIApplication sharedApplication]setStatusBarHidden:YES animated:NO];
14.更改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];
15.键盘透明:
textField.keyboardAppearance = UIKeyboardAppearanceAlert;
16.状态栏的网络活动风火轮是否旋转:
[UIApplication sharedApplication].networkActivityIndicatorVisible , 默认值是 NO 。
17.截取屏幕图片:
// 创建一个基于位 图的图形上下文并指定大小为CGSizeMake(200,400) UIGraphicsBeginImageContext(CGSizeMake(200,400)); //renderInContext 呈现接受者及其子范围到 指定的上下文 [self.view.layer renderInContext:UIGraphicsGetCurrentContext()]; // 返回 一个基于当前图形上下文的图片 UIImage *aImage = UIGraphicsGetImageFromCurrentImageContext(); // 移除栈顶 的基于当前位图的图形上下文 UIGraphicsEndImageContext(); // 以 png 格式 返回指定图片的数据 imageData = UIImagePNGR epresentation(aImage);
18.更改cell选中的背景:
UIView *myview = [[UIView alloc] init]; myview.frame = CGRectMake(0, 0, 320, 47); myview.backgroundColor = [UIColorcolorWithPatternImage:[UIImage imageNamed:@"0006.png"]]; cell.selectedBackgroundView = myview;:
19.显示图片:
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];
20.能让图片适应框的大小(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];
21. 实现点击图片进行跳转的代码:(生成一个带有背景图片的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];
22.键盘回收:
1).增加一个button,相应touch down事件,隐藏键盘。这种方法,太山寨了。为了相应一个事件增加一个button太不值得的。
.h - (IBAction)dismissKeyBoard:(id)sender; .m - (IBAction)dismissKeyBoard:(id)sender { [testText resignFirstResponder]; }
2).第二种方法:在背景图片上添加Tap事件,相应单击处理。这种方法,很好代替了button方式,但是如果UI上没有背景图片,这种方法又回到到第一种山寨的方法行列中。
// 添加带有处理时间的背景图片
UIImageView *backView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height)];
backView.image = [UIImage imageNamed:@"small3.png"];
backView.userInteractionEnabled = YES;
UITapGestureRecognizer *singleTouch = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismissKeyboard:)];
[backView addGestureRecognizer:singleTouch];
backView.tag = 110;
[self.view addSubview:backView];
-(void)dismissKeyboard:(id)sender{
[text resignFirstResponder];
}
3).在xib文件中,修改xib文件的objects属性,默认是view属性,我们可以修改为UIControl属性,从而是xib文件相应touch down事件。这种方法,缺点就是没有xib就悲剧了。
.h - (IBAction)dimissKeyboard:(id)sender; .m - (IBAction)dimissKeyboard:(id)sender { [text resignFirstResponder]; }
23、Gif图片的解析
//加载gif 02 03 NSString *filePath = [[NSBundle mainBundle]pathForResource:@"bai3" ofType:@"gif"]; 04 05 NSData *data = [NSData dataWithContentsOfFile:filePath]; 06 07 CGImageSourceRef gif = CGImageSourceCreateWithData((CFDataRef)data, nil); 08 09 //获取gif的各种属性 10 11 CFDictionaryRef gifprops =(CGImageSourceCopyPropertiesAtIndex(gif,0,NULL)); 12 13 NSLog(@"_______%@",gifprops); 14 15 16 NSInteger count =CGImageSourceGetCount(gif); 17 18 NSLog(@"________%d",count); 19 20 21 CFDictionaryRef gifDic = CFDictionaryGetValue(gifprops, kCGImagePropertyGIFDictionary); 22 23 CFDictionaryRef delay = CFDictionaryGetValue(gifDic, kCGImagePropertyGIFDelayTime); 24 25 NSLog(@"_______%@",delay); 26 27 28 //[gifDic objectForKey:(NSString *)kCGImagePropertyGIFDelayTime]; 29 30 // NSNumber * w = CFDictionaryGetValue(gifprops, @"PixelWidth"); 31 32 // NSNumber * h =CFDictionaryGetValue(gifprops, @"PixelHeight"); 33 34 // float totalDuration = delay.doubleValue * count; 35 36 // float pixelWidth = w.intValue; 37 38 // float pixelHeight = h.intValue; 39 40 //将gif解析成UIImage类型对象,并加进images数组中 41 42 43 NSMutableArray *images = [NSMutableArray arrayWithCapacity:count]; 44 45 for(int index=0;index<count;index++) 46 47 { 48 49 CGImageRef ref = CGImageSourceCreateImageAtIndex(gif, index, nil); 50 51 UIImage *img = [UIImage imageWithCGImage:ref]; 52 53 [images addObject:img]; 54 55 CFRelease(ref); 56 57 } 58 59 CFRelease(gifprops); 60 61 CFRelease(gif);
Gif的合成
- (void)exportAnimatedGif:(CGImageSourceRef )gif :(NSMutableArray *)images 02 03 { 04 05 NSString *path = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"animated.gif"]; 06 07 CGImageDestinationRef destination = CGImageDestinationCreateWithURL(( CFURLRef)[NSURL fileURLWithPath:path], 08 09 kUTTypeGIF, 10 11 images.count, 12 13 NULL); 14 15 UIImage *image; 16 17 for (int i = 0; i<images.count; i++) 18 19 { 20 21 image = images[i]; 22 23 CFDictionaryRef gifprops =(CGImageSourceCopyPropertiesAtIndex(gif,i,NULL)); 24 25 CFDictionaryRef gifDic = CFDictionaryGetValue(gifprops, kCGImagePropertyGIFDictionary); 26 27 NSNumber *delay = CFDictionaryGetValue(gifDic, kCGImagePropertyGIFDelayTime); 28 29 NSDictionary *gifDelay = [NSDictionary dictionaryWithObject:[NSDictionary dictionaryWithObject:delay forKey:(NSString *)kCGImagePropertyGIFDelayTime] 30 31 forKey:(NSString *)kCGImagePropertyGIFDictionary]; 32 33 34 35 CGImageDestinationAddImage(destination,image.CGImage, (CFDictionaryRef)gifDelay); 36 37 CGImageDestinationSetProperties(destination, ( CFDictionaryRef)gifprops); 38 39 } 40 41 42 43 // CGImageDestinationSetProperties(destination, ( CFDictionaryRef)gifprops); 44 45 CGImageDestinationFinalize(destination); 46 47 CFRelease(destination); 48 49 NSLog(@"animated GIF file created at %@", path); 50 51 52 }
24.将一个UIView对象的内容保存为UIImage
+ (UIImage*)imageFromView:(UIView*)view{ 02 03 UIGraphicsBeginImageContextWithOptions(view.bounds.size, YES, view.layer.contentsScale); 04 05 [view.layer renderInContext:UIGraphicsGetCurrentContext()]; 06 07 UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); 08 09 UIGraphicsEndImageContext(); 10 11 return image; 12 13 }
注意:生成的图片的scale和view的scale一致,这样才可以保证图片的效果和view显示的完全一致,使用renderInContext方法可以让subviews的内容也显示的图片里。
相关文章推荐
- iOS开发中最有用关键的代码合集(2)
- iOS开发中最有用关键的代码合集(1)
- iOS开发中最有用关键的代码合集(1)
- iOS开发中最有用关键的代码合集
- iOS开发中最有用关键的代码合集
- iOS开发中最有用关键的代码合集(2)
- iOS开发中一些有用的小代码
- iOS开发中一些有用的小代码
- iOS开发中一些有用的小代码
- IOS开发常用代码片段合集(三)
- iOS开发中一些有用的小代码
- iOS开发中一些有用的小代码
- IOS开发常用代码片段合集(一)
- iOS开发中一些有用的小代码
- iOS开发中一些有用的小代码
- iOS开发有用代码(有判断邮箱格式是否正确的代码、图片压缩、亲测可用的图片上传代码和实现点击图片进行跳转的代码等。)
- iOS开发中一些有用的小代码
- 关于IOS开发的一些有用的代码片段(别人总结和自己的)
- iOS开发中一些有用的小代码
- iOS开发中一些有用的小代码