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 : @"\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];
 
 
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

posted on 2016-07-31 21:38  Jenaral  阅读(740)  评论(0编辑  收藏  举报

导航