zoukankan      html  css  js  c++  java
  • iOS使用mask切割不规则图案

    起点,终点要闭合:

    CGPathAddQuadCurveToPoint(path, NULL, viewSize.width * 0.5, viewSize.height, viewSize.width, viewSize.height * 0.9); 这个方法画弧线
    /**
     根据几何知识规则 生成不规则图形
     */
    -(void)makeContents3{
        //生成path
        CGMutablePathRef path =CGPathCreateMutable();
        
        CGSize viewSize = self.bounds.size;
        
        CGPathMoveToPoint(path, NULL, 0, viewSize.height * 0.9);//左边直线下点
        
        CGPathAddQuadCurveToPoint(path, NULL, viewSize.width * 0.5, viewSize.height, viewSize.width, viewSize.height * 0.9);
        CGPathAddLineToPoint(path, NULL, viewSize.width, 0);
        CGPathAddLineToPoint(path, NULL, 0, 0);
        CGPathAddLineToPoint(path, NULL, 0, viewSize.height * 0.9); // 形成闭环
        
        
        CAShapeLayer *maskLayer= [CAShapeLayer layer];
        
        //        maskLayer.path=[UIBezierPath bezierPathWithRoundedRect:self.indicateView.bounds cornerRadius:30].CGPath;
        
        maskLayer.path=path;
        
        maskLayer.fillColor=[UIColor blackColor].CGColor;//填充色
        maskLayer.strokeColor=[UIColor redColor].CGColor;
        maskLayer.frame=self.bounds;
        maskLayer.contentsCenter=CGRectMake(0.5, 0.5, 0.1, 0.1);
        //按比例放大 不变形
        maskLayer.contentsScale=[UIScreen mainScreen].scale;
        
        //
        CALayer * contentLayer=[CALayer layer];
        contentLayer.mask=maskLayer;
        contentLayer.frame=self.bounds;
        
        self.layer.mask = maskLayer;
        
    }
  • 相关阅读:
    正则表达式
    iOS获取设备型号、设备类型等信息
    Dubbo-Zookeeper安装
    CentOS-常用安装
    多线程-线程通信
    JVM-高效并发
    静态代理与JDK动态代理
    JVM-类加载机制
    RPC原理及实现
    JVM-自动内存管理机制
  • 原文地址:https://www.cnblogs.com/tufei7/p/10431758.html
Copyright © 2011-2022 走看看