zoukankan      html  css  js  c++  java
  • 图层的基本使用

    Main.storyboard

    ViewConroller.m

    //

    //  ViewController.m

    //  7A10.图层基本使用

    //

    //  Created by huan on 16/2/3.

    //  Copyright © 2016 huanxi. All rights reserved.

    //

     

    #import "ViewController.h"

    #import "UIImage+CZ.h"

    @interface ViewController ()

    @property (weak, nonatomic) IBOutlet UIImageView *imageView;

    @property (weak, nonatomic) IBOutlet UIView *redView;

     

    @end

     

    @implementation ViewController

     

    - (void)viewDidLoad {

        [super viewDidLoad];

        // Do any additional setup after loading the view, typically from a nib.

        //学习CALayer的属性

        

        //获取圆角图片

        UIImage *image = [UIImage cornerImageWithImageName:@"papa" cornerRadius:10 borderWidth:2 borderColor:[UIColor redColor]];

        

        //设置阴影(一定要配合透明度)

        self.redView.layer.shadowColor = [UIColor blackColor].CGColor;

        //设置阴影的透明度

        self.redView.layer.shadowOpacity = 0.5;

        //设置阴影的位置

        self.redView.layer.shadowOffset = CGSizeMake(150, 150);

        //设置内容 一般设置图片,并且的图片的数据类型为CGImageRef

        self.redView.layer.contents = (id)image.CGImage;

     

        

            /**

         *1.如果设置了masksToBoundsYes,阴影会不出来,原因,阴影也被切掉了

         *2.如果你想有圆角的效果。又想有阴影,图片本来就有圆角效果

         *3. 换句话说,自己把图片转换有圆角的图片,再显示

         */

        

    }

     

    -(void)test1{

        //autoLayout影响的尺寸设置

        //设置尺寸

        self.redView.layer.bounds = CGRectMake(0, 0, 150, 150);

        

        //设置边框的颜色(一定要设置宽度)

        self.redView.layer.borderColor = [UIColor blackColor].CGColor;

        //设置边框的宽度

        self.redView.layer.borderWidth = 2;

        

        //设置背景颜色

        self.redView.layer.backgroundColor = [UIColor greenColor].CGColor;

        //设置圆角效果

        self.redView.layer.cornerRadius = 10;

        //如果圆角周边的剪掉的话,设置一个属性

        self.redView.layer.masksToBounds = YES;

        //设置阴影(一定要配合透明度)

        self.redView.layer.shadowColor = [UIColor blackColor].CGColor;

        //设置阴影的透明度

        self.redView.layer.shadowOpacity = 0.5;

        //设置阴影的位置

        self.redView.layer.shadowOffset = CGSizeMake(50, 50);

        //设置内容 一般设置图片,并且的图片的数据类型为CGImageRef

        self.redView.layer.contents = (id)[UIImage imageNamed:@"papa"].CGImage;

     

    }

     

    - (void)didReceiveMemoryWarning {

        [super didReceiveMemoryWarning];

        // Dispose of any resources that can be recreated.

    }

     

    @end

    UIImage+CZ.h

    #import <UIKit/UIKit.h>

     

    @interface UIImage (CZ)

     

    //把一张图片,裁剪成圆角的效果,可设置圆角大小、边框、边框颜色的新图片

    +(UIImage *)cornerImageWithImageName:(NSString *)imageName cornerRadius:(CGFloat)cornerRadius borderWidth:(CGFloat)borderWidth borderColor:(UIColor *)borderColor;

     

    @end

    UIImage+CZ.m

    //

    //  UIImage+CZ.m

    //  7A10.图层基本使用

    //

    //  Created by huan on 16/2/4.

    //  Copyright © 2016 huanxi. All rights reserved.

    //

     

    #import "UIImage+CZ.h"

     

    @implementation UIImage (CZ)

     

    +(UIImage *)cornerImageWithImageName:(NSString *)imageName cornerRadius:(CGFloat)cornerRadius borderWidth:(CGFloat)borderWidth borderColor:(UIColor *)borderColor{

        //生成一张新图片

        UIImage *sourceImage = [UIImage imageNamed:imageName];

        //1.开启一个位图上下文

        UIGraphicsBeginImageContextWithOptions(sourceImage.size, NO, 0.0);

        //2.把图片画在 位图上下文

        //2.1 图片要剪裁成圆角

        CALayer *layer = [CALayer layer];//图层里有一张图片

        //图层设置大小(一定要设置)

        layer.bounds = CGRectMake(0,0, sourceImage.size.width, sourceImage.size.height);

        //设置内容

        layer.contents = (id)sourceImage.CGImage;

        

        //设置圆角

        layer.cornerRadius = cornerRadius;

        //裁剪

        layer.masksToBounds = YES;

        //边框

        layer.borderWidth = borderWidth;

        //边框的颜色

        layer.borderColor = borderColor.CGColor;

        

        [layer renderInContext:UIGraphicsGetCurrentContext()];

        //3.从位图上下文 获取新图片

        UIImage *newImg = UIGraphicsGetImageFromCurrentImageContext();

        //4.结束位图的编辑

        UIGraphicsEndImageContext();

        //5.返回新图片

        return newImg;

    }

    @end

    运行结果

     

  • 相关阅读:
    PHP与Web页面的交互
    PHP数组和数据结构(下)未完。。。。
    PHP数组和数据结构(上)
    网络
    单列模式(饿汉模式和懒汉模式)
    C++动态内存管理
    基础I/O
    进程程序替换(自主实现shell)
    进程控制
    调研task_struct结构体
  • 原文地址:https://www.cnblogs.com/Lu2015-10-03/p/5191188.html
Copyright © 2011-2022 走看看