zoukankan      html  css  js  c++  java
  • CALayer

    [objc] view plaincopy在CODE上查看代码片派生到我的代码片
    
        <span style="font-size:18px;">为了确认设置</span><span style="font-size:18px; font-family: Arial, Helvetica, sans-serif;">imageView.layer.masksToBounds = YES</span><span style="font-family: Arial, Helvetica, sans-serif;">后,</span><span style="font-size:18px;"></span><p class="p1"><span style="font-family: Arial, Helvetica, sans-serif;">外面的view是否消失,改用了UIButton来验证.结果是存在的.</span></p>  
    
    [objc] view plaincopy在CODE上查看代码片派生到我的代码片
    
        UIButton *imageView = [[UIButton alloc] initWithFrame:CGRectMake(30, 20, 200, 200)];  
        [imageView setBackgroundImage:[UIImage imageNamed:@"气球.png"] forState:UIControlStateNormal];  
        [self.view addSubview:imageView];  
          
        /*****--第一种:图层当作一个属性来使用 --------*/  
        //CALayer图层前需要导入一个系统库  
        //设置图层的宽度  
        [imageView.layer setBorderWidth:5];  
        //设置图层的弧度  
        [imageView.layer setCornerRadius:100];  
        //设置颜色  
        [imageView.layer setBorderColor:[UIColor purpleColor].CGColor];  
        //设置bounds外消失  
        //imageView.layer.masksToBounds = YES;//默认为NO,如果设置为YES时,连阴影也会没有  
        //设置透明度  
        imageView.layer.opacity = 0.9;  
          
        //设置阴影  
        imageView.layer.shadowColor = [UIColor redColor].CGColor;  
        //设置阴影偏移量  
        imageView.layer.shadowOffset = CGSizeMake(30, 30);  
        //设置阴影透明度,默认是全透明,所以设置才能看到  
        imageView.layer.shadowOpacity = 0.9f;  
        //设置阴影弧度  
        imageView.layer.shadowRadius = 50;  
          
         /*****--第二种:图层单独使用 --------*/  
        CALayer *layer1 = [CALayer layer];//便利构造器创建一个图层  
        //设置一个图层的内容  
        layer1.contents = (id)[UIImage imageNamed:@"气球.png"].CGImage;  
        //设置图层的fram  
        layer1.frame = CGRectMake(30, 260, 200, 200);  
        //把图层add到图层上面  
        [self.view.layer addSublayer:layer1];  
        [layer1 setCornerRadius :100];  
    
    
    上面有一个问题就是:
    
    我设置imageView.layer.masksToBounds = YES后,连阴影部分都消失了.
    
    为了解决这个问题,我们可以采用两层图层;代码如下:
    
    [objc] view plaincopy在CODE上查看代码片派生到我的代码片
    
        CALayer *sublayer =[CALayer layer];  
        sublayer.backgroundColor =[UIColor blueColor].CGColor;  
        sublayer.shadowOffset = CGSizeMake(3, 10);  
        sublayer.shadowRadius =5.0;  
        sublayer.shadowColor =[UIColor blackColor].CGColor;  
        sublayer.shadowOpacity =0.8;  
        sublayer.frame = CGRectMake(30, 30, 128, 192);  
        sublayer.borderColor =[UIColor blackColor].CGColor;  
        sublayer.borderWidth =2.0;  
        sublayer.cornerRadius =10.0;  
        [self.view.layer addSublayer:sublayer];  
          
        CALayer *imageLayer =[CALayer layer];  
        imageLayer.frame = sublayer.bounds;  
        imageLayer.cornerRadius =10.0;  
        imageLayer.contents =(id)[UIImage imageNamed:@"气球.png"].CGImage;  
        imageLayer.masksToBounds =YES;  
        [sublayer addSublayer:imageLayer];
  • 相关阅读:
    全站301跳转 PHP
    linux flush memcache缓存
    php Memcache
    PHP MemCached win安装
    windows下安装memcache
    2013 年最好的 20 款免费 jQuery 插件
    License Manager 10.3启动失败解决方法
    .ecp认证文件(10.3版本)
    ArcGIS 10.3 安装及破解
    win7下安装MYSQL报错:"MYSQL 服务无法启动"的3534问题
  • 原文地址:https://www.cnblogs.com/lidongq/p/4072703.html
Copyright © 2011-2022 走看看