zoukankan      html  css  js  c++  java
  • iOS界面上方的纸飞飞代码(撕掉纸张留下的头)

    效果实现代码:

    - (CAShapeLayer *)tornPaperLayerWithHeight:(CGFloat)height{
        CGFloat width = MAX(CGRectGetWidth([[UIScreen mainScreen] bounds]), CGRectGetHeight([[UIScreen mainScreen] bounds]));
        CGFloat overshoot = 4;
        CGFloat maxY = height-overshoot;
        UIBezierPath *bezierPath = [UIBezierPath bezierPath];
        [bezierPath moveToPoint: CGPointMake(-overshoot, 0)];
        CGFloat x = -overshoot;
        CGFloat y = arc4random_uniform(maxY);
        [bezierPath addLineToPoint: CGPointMake(-overshoot, y)];
        while(x < width+overshoot){
            y = MAX(maxY-3, arc4random_uniform(maxY));
            x += MAX(4.5, arc4random_uniform(12.5));
            [bezierPath addLineToPoint: CGPointMake(x, y)];
        }
        y = arc4random_uniform(maxY);
        [bezierPath addLineToPoint: CGPointMake(width+overshoot, y)];
        [bezierPath addLineToPoint: CGPointMake(width+overshoot, 0)];
        [bezierPath addLineToPoint: CGPointMake(-overshoot, 0)];
        [bezierPath closePath];
    
        CAShapeLayer *shapeLayer = [CAShapeLayer layer];
        shapeLayer.fillColor = [self.paperBackgroundColor CGColor];
        shapeLayer.shadowColor = [[UIColor blackColor] CGColor];
        shapeLayer.shadowOffset = CGSizeMake(0, 0);
        shapeLayer.shadowOpacity = 0.5;
        shapeLayer.shadowRadius = 1.5;
        shapeLayer.shadowPath = [bezierPath CGPath];
        shapeLayer.path = [bezierPath CGPath];
        return shapeLayer;
    }

    使用代码:

        [self.layer addSublayer:[self tornPaperLayerWithHeight:12]];
        [self.layer addSublayer:[self tornPaperLayerWithHeight:9]];
  • 相关阅读:
    linux 读写文件 open write lseek的API和应用
    gdb 常用命令
    makefile
    c/c++ 动态库与静态库的制作和使用
    linux 常用命令
    c/c++ 网络编程 陈硕老师视频理解之ttcp
    emacs 高亮
    初识HMTL标签
    Java集合基于JDK1.8的ArrayList源码分析
    Java提高篇——equals()与hashCode()方法详解
  • 原文地址:https://www.cnblogs.com/klaus/p/3036803.html
Copyright © 2011-2022 走看看