iOS开发中最有用关键的代码合集

移动开发 iOS
本文整理了,在iOS开发中我们所遇到一些开发问题的技巧类的代码,让你在开发过程中避免了很多弯路,希望能给你的开发带来帮助和启发。

本文整理了,在iOS开发中我们所遇到一些开发问题的技巧类的代码,让你在开发过程中避免了很多弯路,希望能给你的开发带来帮助和启发。

 

 

 

 

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];  
}  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
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;  
}  
   
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
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 );  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
4.imageView加载图片
 
UIImage  *myImage = [ UIImage   imageNamed : @"1.jpg" ];  
   [ imageView   setImage :myImage];  
   [ self . view   addSubview : imageView ];  
  • 1.
  • 2.
  • 3.
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];  
}  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
6.跳到下个View
 
nextWebView  = [[ WEBViewController   alloc ]  initWithNibName : @"WEBViewController"   bundle : nil ];  
[ self   presentModalViewController : nextWebView   animated : YES ];  
  • 1.
  • 2.
7.创建一个UIBarButton右边按钮
 
UIBarButtonItem  *rightButton = [[ UIBarButtonItem   alloc ]  initWithTitle : @" 右边 "   style : UIBarButtonItemStyleDone   target : self   action : @selector (clickRightButton)];  
[  self . navigationItem   setRightBarButtonItem :rightButton];  
  • 1.
  • 2.
self . navigationController . navigationBarHidden  =  YES ;//  
  • 1.
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;  
  • 1.
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];  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.

10.2在xib文件中已经创建好Button,通过tag获取按钮 

 

UIButton *testButton= (UIButton*)[self.view viewWithTag:100]; 
    [testButton addTarget:self action:@selector(test:) forControlEvents:UIControlEventTouchUpInside];  
  • 1.
  • 2.

  //按钮事件

 

-(void) test: (id) sender{ 
    UIAlertView *av = [[[UIAlertView alloc] initWithTitle:@"ceshi" message:@"test11111" delegate:nil cancelButtonTitle:@"OK"otherButtonTitles:nil] autorelease]; 
    [av show]; 
}  
  • 1.
  • 2.
  • 3.
  • 4.

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;  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
13.隐藏statusBar:
在程序的 viewDidLoad 中加入
 
[[UIApplication sharedApplication]setStatusBarHidden:YES animated:NO];  
  • 1.

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];  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.

15.键盘透明:

 

textField.keyboardAppearance = UIKeyboardAppearanceAlert; 
  • 1.

16.状态栏的网络活动风火轮是否旋转:

 

[UIApplication sharedApplication].networkActivityIndicatorVisible , 默认值是 NO 。 
  • 1.

17.截取屏幕图片:

 

// 创建一个基于位 图的图形上下文并指定大小为CGSizeMake(200,400) 
UIGraphicsBeginImageContext(CGSizeMake(200,400));  
 
//renderInContext  呈现接受者及其子范围到 指定的上下文 
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()]; 
    // 返回 一个基于当前图形上下文的图片 
 UIImage *aImage = UIGraphicsGetImageFromCurrentImageContext(); 
  // 移除栈顶 的基于当前位图的图形上下文 
UIGraphicsEndImageContext(); 
// 以 png 格式 返回指定图片的数据 
imageData = UIImagePNGR epresentation(aImage);  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.

18.更改cell选中的背景:

 

UIView *myview = [[UIView alloc] init]; 
   myview.frame = CGRectMake(0, 0, 320, 47); 
   myview.backgroundColor = [UIColorcolorWithPatternImage:[UIImage imageNamed:@"0006.png"]]; 
   cell.selectedBackgroundView = myview;:  
  • 1.
  • 2.
  • 3.
  • 4.

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];  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
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];  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

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];  
  • 1.
  • 2.
  • 3.
  • 4.

22.键盘回收:

1).增加一个button,相应touch down事件,隐藏键盘。这种方法,太山寨了。为了相应一个事件增加一个button太不值得的。

 

.h  
 
 
- (IBAction)dismissKeyBoard:(id)sender;  
 
.m  
 
 
- (IBAction)dismissKeyBoard:(id)sender {  
 
    [testText resignFirstResponder];  
 
}  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.

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];  
 
}  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.

#p#

3).在xib文件中,修改xib文件的objects属性,默认是view属性,我们可以修改为UIControl属性,从而是xib文件相应touch down事件。这种方法,缺点就是没有xib就悲剧了。

 

.h  
 
 
- (IBAction)dimissKeyboard:(id)sender;  
 
.m  
 
 
- (IBAction)dimissKeyboard:(id)sender {  
 
    [text resignFirstResponder];  
 
}  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.

23Gif图片的解析

 

//加载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);  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
  • 76.
  • 77.
  • 78.
  • 79.
  • 80.
  • 81.
  • 82.
  • 83.
  • 84.
  • 85.
  • 86.
  • 87.
  • 88.
  • 89.
  • 90.
  • 91.
  • 92.
  • 93.
  • 94.
  • 95.
  • 96.
  • 97.
  • 98.
  • 99.
  • 100.
  • 101.
  • 102.
  • 103.
  • 104.
  • 105.
  • 106.
  • 107.
  • 108.
  • 109.
  • 110.
  • 111.
  • 112.
  • 113.
  • 114.
  • 115.
  • 116.
  • 117.
  • 118.
  • 119.
  • 120.
  • 121.

 

 

 

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 }  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
  • 76.
  • 77.
  • 78.
  • 79.
  • 80.
  • 81.
  • 82.
  • 83.
  • 84.
  • 85.
  • 86.
  • 87.
  • 88.
  • 89.
  • 90.
  • 91.
  • 92.
  • 93.
  • 94.
  • 95.
  • 96.
  • 97.
  • 98.
  • 99.
  • 100.
  • 101.
  • 102.
  • 103.

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 }  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.

注意:生成的图片的scale和view的scale一致,这样才可以保证图片的效果和view显示的完全一致,使用renderInContext方法可以让subviews的内容也显示的图片里。

责任编辑:张叶青 来源: 开源社区
相关推荐

2011-04-27 16:20:30

iOS开发工具iOS开发工具

2012-12-24 14:51:02

iOS

2015-07-06 10:31:50

Java开发者监控工具

2018-09-18 08:35:23

数据中心KPI绩效

2012-12-27 09:56:34

IaaSPaaS数据库

2018-08-06 13:46:07

编程语言Python数据科学库

2015-03-23 09:44:55

iOS开发技巧

2022-09-21 13:30:39

公有云安全漏洞

2009-05-20 16:45:44

Eclipse快捷键重命名

2021-04-04 22:31:56

Python编程模块

2011-04-13 15:13:01

ASP.NET

2021-05-28 12:09:39

安全技术物理安全技术

2022-08-26 17:22:46

MySQL性能调优数据库

2014-11-14 17:08:24

代码

2018-01-31 22:26:36

Java开发人员

2012-07-20 10:46:44

Web

2015-10-27 15:45:27

Web开发CSS代码

2012-08-01 09:34:51

代码编辑器开发代码

2017-10-20 11:12:12

数据类型关键字对象

2019-10-17 08:42:46

WebPythonMatplotlib
点赞
收藏

51CTO技术栈公众号