描述:
通过使用QuartzCore实现给layer添加mask 完成透明效果
此处mask只根据png图片的像素是否透明决定。
效果图:
下部灰色为透明
步骤:
创建layer
给layer设置大小为需要mask的layer的frame
将掩码图(png) 转成CGImage然后强转成id传入需要掩盖的layer
掩盖的layer 设置maskToBounds=YES
代码:
//
// PLLViewController.m
// DemoForLayerMask
//
// Created by liu poolo on 14-8-2.
// Copyright (c) 2014年 liu poolo. All rights reserved.
//
#import "PLLViewController.h"
#import <QuartzCore/QuartzCore.h>
@interface PLLViewController ()
@end
@implementation PLLViewController
- (void)viewDidLoad
{
[super viewDidLoad];
NSLog(@"%@",NSStringFromCGRect(self.view.frame));
UIImageView* bImageView=[[UIImageView alloc]initWithFrame:self.view.frame];
[bImageView setImage:[UIImage imageNamed:@"2B.jpg"]];
[self.view addSubview:bImageView];
UIImageView* fImageView=[[UIImageView alloc]initWithFrame:self.view.frame];
[fImageView setImage:[UIImage imageNamed:@"2A.jpg"]];
[self.view addSubview:fImageView];
CALayer *layer=[CALayer layer];
layer.frame=self.view.frame;
layer.contents=(id)[[UIImage imageNamed:@"16.png"] CGImage];
fImageView.layer.mask=layer;
fImageView.layer.masksToBounds=YES;
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
通过使用QuartzCore实现给layer添加mask 完成透明效果
此处mask只根据png图片的像素是否透明决定。
效果图:
掩码图:
下部灰色为透明
步骤:
创建layer
给layer设置大小为需要mask的layer的frame
将掩码图(png) 转成CGImage然后强转成id传入需要掩盖的layer
掩盖的layer 设置maskToBounds=YES
代码:
//
// PLLViewController.m
// DemoForLayerMask
//
// Created by liu poolo on 14-8-2.
// Copyright (c) 2014年 liu poolo. All rights reserved.
//
#import "PLLViewController.h"
#import <QuartzCore/QuartzCore.h>
@interface PLLViewController ()
@end
@implementation PLLViewController
- (void)viewDidLoad
{
[super viewDidLoad];
NSLog(@"%@",NSStringFromCGRect(self.view.frame));
UIImageView* bImageView=[[UIImageView alloc]initWithFrame:self.view.frame];
[bImageView setImage:[UIImage imageNamed:@"2B.jpg"]];
[self.view addSubview:bImageView];
UIImageView* fImageView=[[UIImageView alloc]initWithFrame:self.view.frame];
[fImageView setImage:[UIImage imageNamed:@"2A.jpg"]];
[self.view addSubview:fImageView];
CALayer *layer=[CALayer layer];
layer.frame=self.view.frame;
layer.contents=(id)[[UIImage imageNamed:@"16.png"] CGImage];
fImageView.layer.mask=layer;
fImageView.layer.masksToBounds=YES;
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end