• 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];
    }
     
    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 : @" --%@ " ,boundary]  dataUsingEncoding: NSUTF8StringEncoding ]];
    [body  appendData :[[ NSString   stringWithString : @"Content-Disposition:form-data; name="userfile"; filename="2.png" " ]  dataUsingEncoding : NSUTF8StringEncoding ]]; // 上传上去的图片名字
    [body  appendData :[[ NSString   stringWithString : @"Content-Type: application/octet-stream "]  dataUsingEncoding : NSUTF8StringEncoding ]];
    [body  appendData :[ NSData   dataWithData :imageData]];
    [body  appendData :[[ NSString   stringWithFormat : @" --%@-- " ,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];
     
     
    8.设置navigationBar隐藏
    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];

    }

    23Gif图片的解析

    //加载gif

     

    NSString *filePath = [[NSBundle mainBundle]pathForResource:@"bai3" ofType:@"gif"];

     

    NSData *data = [NSData dataWithContentsOfFile:filePath];

     

    CGImageSourceRef gif = CGImageSourceCreateWithData((CFDataRef)data, nil);

     

    //获取gif的各种属性

     

    CFDictionaryRef gifprops =(CGImageSourceCopyPropertiesAtIndex(gif,0,NULL));

     

    NSLog(@"_______%@",gifprops);

     

     

    NSInteger count =CGImageSourceGetCount(gif);

     

    NSLog(@"________%d",count);

     

     

    CFDictionaryRef gifDic = CFDictionaryGetValue(gifprops, kCGImagePropertyGIFDictionary);

     

    CFDictionaryRef delay = CFDictionaryGetValue(gifDic, kCGImagePropertyGIFDelayTime);

     

    NSLog(@"_______%@",delay);

     

     

    //[gifDic objectForKey:(NSString *)kCGImagePropertyGIFDelayTime];

     

    //    NSNumber * w = CFDictionaryGetValue(gifprops, @"PixelWidth");

     

    //    NSNumber * h =CFDictionaryGetValue(gifprops, @"PixelHeight");

     

    //    float totalDuration = delay.doubleValue * count;

     

    //    float pixelWidth = w.intValue;

     

    //    float pixelHeight = h.intValue;

     

    //gif解析成UIImage类型对象,并加进images数组中

     

     

    NSMutableArray *images = [NSMutableArray arrayWithCapacity:count];

     

    for(int index=0;index<count;index++)

     

    {

        

        CGImageRef ref = CGImageSourceCreateImageAtIndex(gif, index, nil);

        

        UIImage *img = [UIImage imageWithCGImage:ref];

        

        [images addObject:img];

        

        CFRelease(ref);

        

    }

     

    CFRelease(gifprops);

     

    CFRelease(gif);

    Gif的合成

     

    - (void)exportAnimatedGif:(CGImageSourceRef )gif :(NSMutableArray *)images

     

    {

        

        NSString *path = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"animated.gif"];

        

        CGImageDestinationRef destination = CGImageDestinationCreateWithURL(( CFURLRef)[NSURL fileURLWithPath:path],

                                                                            

                                                                            kUTTypeGIF,

                                                                            

                                                                            images.count,

                                                                            

                                                                            NULL);

        

        UIImage *image;

        

        for (int i = 0; i<images.count; i++)

            

        {

            

            image = images[i];

            

            CFDictionaryRef gifprops =(CGImageSourceCopyPropertiesAtIndex(gif,i,NULL));

            

            CFDictionaryRef gifDic = CFDictionaryGetValue(gifprops, kCGImagePropertyGIFDictionary);

            

            NSNumber *delay = CFDictionaryGetValue(gifDic, kCGImagePropertyGIFDelayTime);

            

            NSDictionary *gifDelay = [NSDictionary dictionaryWithObject:[NSDictionary dictionaryWithObject:delay forKey:(NSString *)kCGImagePropertyGIFDelayTime]

                                      

                                                                 forKey:(NSString *)kCGImagePropertyGIFDictionary];

            

            

            

            CGImageDestinationAddImage(destination,image.CGImage, (CFDictionaryRef)gifDelay);

            

            CGImageDestinationSetProperties(destination, ( CFDictionaryRef)gifprops);

            

        }

        

        

        

        //    CGImageDestinationSetProperties(destination, ( CFDictionaryRef)gifprops);

        

        CGImageDestinationFinalize(destination);

        

        CFRelease(destination);

        

        NSLog(@"animated GIF file created at %@", path);

        

        

    }

    24.将一个UIView对象的内容保存为UIImage

    + (UIImage*)imageFromView:(UIView*)view{

        

        UIGraphicsBeginImageContextWithOptions(view.bounds.size, YES, view.layer.contentsScale);

        

        [view.layer renderInContext:UIGraphicsGetCurrentContext()];

        

        UIImage *image = UIGraphicsGetImageFromCurrentImageContext();

        

        UIGraphicsEndImageContext();

        

        return image;

        

    }

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

    25.捕捉屏幕截图
    CALayer实例使用Core Graphics的renderInContext方法可以将视图绘制到图像上下文中以便转化为其他UIImage实例。前提先#import <QuartzCore/QuartzCore.h>

    复制代码
    + (UIImage *) imageFromView: (UIView *)theView {
    // draw a view's contents into an image context
    UIGraphicsBeginImageContext(theView.frame.size);
    CGContextRef context = UIGraphicsGetCurrentContext();

    [theView.layer renderInContext:context];
    UIImage *theImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return theImage;
    }
    复制代码

    注:UIGraphicsBeginImageContext(CGSize size)创建一个基于位图的上下文(context),并将其设置为当前上下文。函数功能与UIGraphicsBeginImageContextWithOptions相同,相当于该方法的opaque参数为NO,scale因子为1.0。而UIGraphicsEndImageContext()方法是移除栈顶的基于当前位图的图形上下文。

    26.捕捉截取某个区域内屏幕图像

    复制代码
    - (UIImage *)imageFromView: (UIView *) theView  atFrame:(CGRect)rect
    {
    UIGraphicsBeginImageContext(theView.frame.size);
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextSaveGState(context);
    UIRectClip(rect);
    [theView.layer renderInContext:context];
    UIImage *theImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    return theImage;//[self getImageAreaFromImage:theImage atFrame:rect];
    }
    复制代码

    27.从某图片中截图

    复制代码
    UIImage *image = [[UIImage alloc] initWithData:data];//大图
    CGRect imageRect = CGRectMake(0.0, 0.0, image.size.width, image.size.height);
    CGSize itemSize = CGSizeMake(w,h);
    UIGraphicsBeginImageContext(itemSize);
    [image drawInRect:imageRect];
    UIImage *smallimage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    复制代码

    28.视图添加倒影效果

    复制代码
    const CGFloat kReflectPercent = -0.25f;
    const CGFloat kReflectOpacity = 0.3f;
    const CGFloat kReflectDistance = 10.0f;

    + (void)addSimpleReflectionToView:(UIView *)theView
    {
    CALayer *reflectionLayer = [CALayer layer];
    reflectionLayer.contents = [theView layer].contents;
    reflectionLayer.opacity = kReflectOpacity;
    reflectionLayer.frame = CGRectMake(0.0f,0.0f,theView.frame.size.width,theView.frame.size.height*kReflectPercent); //倒影层框架设置,其中高度是原视图的百分比
    CATransform3D stransform = CATransform3DMakeScale(1.0f,-1.0f,1.0f);
    CATransform3D transform = CATransform3DTranslate(stransform,0.0f,-(kReflectDistance + theView.frame.size.height),0.0f);
    reflectionLayer.transform = transform;
    reflectionLayer.sublayerTransform = reflectionLayer.transform;
    [[theView layer] addSublayer:reflectionLayer];
    }
    复制代码

     另一:使用Core Graphics创建倒影

    复制代码
    + (CGImageRef) createGradientImage:(CGSize)size
    {
    CGFloat colors[] = {0.0,1.0,1.0,1.0};
    //在灰色设备色彩上建立一渐变
    CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceGray();
    CGContextRef context = CGBitmapContextCreate(nil,size.width,size.height,8,0,colorSpace,kCGImageAlphaNone);
    CGGradientRef gradient = CGGradientCreateWithColorComponents(colorSpace,colors,NULL,2);
    CGColorSpaceRelease(colorSpace);

    //绘制线性渐变
    CGPoint p1 = CGPointZero;
    CGPoint p2 = CGPointMake(0,size.height);
    CGContextDrawLinearGradient(context,gradient,p1,p2,kCGGradientDrawsAfterEndLocation);

    //Return the CGImage
    CGImageRef theCGImage = CGBitmapContextCreateImage(context);
    CFRelease(gradient);
    CGContextRelease(context);
    return theCGImage;
    }
    复制代码

    //Create a shrunken frame for the reflection

    复制代码
    + (UIImage *) reflectionOfView:(UIView *)theView WithPercent:(CGFloat) percent
    {
    //Retain the width but shrink the height
    CGSize size = CGSizeMake(theView.frame.size.width, theView.frame.size.height * percent);

    //Shrink the View
    UIGraphicsBeginImageContext(size);
    CGContextRef context = UIGraphicsGetCurrentContext();
    [theView.layer renderInContext:context];
    UIImage *partialimg = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    //build the mask
    CGImageRef mask = [ImageHelper createGradientImage:size];
    CGImageRef ref = CGImageCreateWithMask(partialimg.CGImage,mask);
    UIImage *theImage = [UIImage imageWithCGImage:ref];
    CGImageRelease(ref);
    CGImageRelease(mask);
    return theImage;
    }

    const CGFloat kReflectDistance = 10.0f;
    + (void) addReflectionToView: (UIView *)theView
    {
    theView.clipsToBounds = NO;
    UIImageView *reflection = [[UIImageView alloc] initWithImage:[ImageHelper reflectionOfView:theView withPercent:0.45f]];
    CGRect frame = reflection.frame;
    frame.origin = CGPointMake(0.0f, theView.frame.size.height + kReflectDistance);
    reflection.frame = frame;

    // add the reflection as a simple subview
    [theView addSubView:reflection];
    [reflection release];
    }
    复制代码

    29.实现圆角图片:

    复制代码
    UIColor *color = [UIColor colorWithRed:0.95 green:0.95 blue:0.95 alpha:0];
    [aImage setBackgroundColor:color]; //设置背景透明

    /******设置图片圆角begin*******/
    aImage.layer.masksToBounds = YES;
    aImage.layer.cornerRadius = 5.0;
    aImage.layer.borderWidth = 0.5;
    aImage.layer.borderColor = [[UIColor grayColor] CGColor];
    /******设置图片圆角end********/
    复制代码

    另有方法可见:http://www.4ucode.com/Study/Topic/2058289转载文章。

    30.实现iPhone图标的水晶立体效果

    复制代码
    - (void)viewDidLoad {
    [super viewDidLoad];
    UIGraphicsBeginImageContext(icon.bounds.size);
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    const CGFloat components[4] = {0.0,0.4,0.0,1.0};
    CGContextSetFillColor(ctx, components);
    CGContextFillRect(ctx, CGRectMake(0, 0, icon.bounds.size.width, icon.bounds.size.height));
    UIImage *background = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    UIImage *image = [UIImage imageNamed:@"icon.png"];
    UIImage *mask = [UIImage imageNamed:@"IconBase.png"];
    UIImage *roundCorner = [UIImage imageNamed:@"round-corner.png"];
    icon.image = image;
    CALayer* subLayer = [[CALayer layer] retain];
    subLayer.frame = icon.bounds;
    subLayer.contents = (id)[background CGImage];
    CALayer* maskLayer = [[CALayer layer] retain];
    maskLayer.frame = icon.bounds;
    maskLayer.contents = (id)[mask CGImage];
    [subLayer setMask:maskLayer];
    [[icon layer] addSublayer:subLayer];
    CALayer* roundCornerLayer = [[CALayer layer] retain];
    roundCornerLayer.frame = icon.bounds;
    roundCornerLayer.contents = (id)[roundCorner CGImage];
    [[icon layer] setMask:roundCornerLayer];
    [maskLayer release];
    [subLayer release];
    [roundCornerLayer release];
    }
    复制代码

    31.两图合成一图

    复制代码
    - (UIImage*)addImage:(UIImage *)image1 toImage:(UIImage*)image2
    {
    UIGraphicsBeginImageContext(image1.size);

    [image1 drawInRect:CGRectMake(0,0,image1.size.width,image1.size.height)];
    [image2 drawInRect:CGRectMake(0,0,image2.size.width,image2.size.height)];

    UIImage *resultingImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return resultingImage;
    }
    复制代码




    参考链接

    1.http://www.cnblogs.com/lovecode/archive/2011/11/12/2246421.html

    2.http://my.oschina.net/u/819843/blog/98574

  • 相关阅读:
    86. Partition List
    2. Add Two Numbers
    55. Jump Game
    70. Climbing Stairs
    53. Maximum Subarray
    64. Minimum Path Sum
    122. Best Time to Buy and Sell Stock II
    以场景为中心的产品设计方法
    那些产品经理犯过最大的错
    Axure教程:如何使用动态面板?动态面板功能详解
  • 原文地址:https://www.cnblogs.com/Jenaral/p/5723988.html
Copyright © 2020-2023  润新知