zoukankan      html  css  js  c++  java
  • iOS 利用图层的mask制作无缝的过渡效果

    示例代码

    - (void)viewDidLoad {

        [super viewDidLoad];

        [self creatLayer];

        [self creatText];

        [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(change) userInfo:nil repeats:YES];

    }

    - (void)creatLayer

    {

        CALayer *left = [CALayer layer];

        left.frame = CGRectMake(100, 100, 200, 50);

        left.backgroundColor = [UIColor blueColor].CGColor;

        [self.view.layer addSublayer:left];

        self.left = left;

        

        CALayer *right = [CALayer layer];

        right.frame = CGRectMake(100, 100, 200, 50);

        right.backgroundColor = [UIColor redColor].CGColor;

        [self.view.layer addSublayer:right];

        self.right = right;

    }

    - (void)creatText

    {

        UILabel * leftLabel =[[UILabel alloc]initWithFrame:CGRectMake(100, 200, 200, 50)];

        leftLabel.text = @"测试一下测试一下测试";

        leftLabel.textColor = [UIColor redColor];

        leftLabel.textAlignment = NSTextAlignmentCenter;

        [self.view addSubview:leftLabel];

        self.leftLabel = leftLabel;

        

        UILabel * rightLabel =[[UILabel alloc]initWithFrame:CGRectMake(100, 200, 200, 50)];

        rightLabel.text = @"测试一下测试一下测试";

        rightLabel.textColor = [UIColor blueColor];

        rightLabel.textAlignment = NSTextAlignmentCenter;

        [self.view addSubview:rightLabel];

        self.rightLabel = rightLabel;    

    }

    - (void)change

    {

        self.bili = arc4random()%100;

        self.left.mask = [CALayer layer];

        self.left.mask.backgroundColor = [[UIColor blackColor] CGColor];

        self.left.mask.frame = CGRectMake(0, 0, 100+self.bili, 50);

        

        self.right.mask = [CALayer layer];

        self.right.mask.backgroundColor = [[UIColor blackColor ] CGColor];

        self.right.mask.frame = CGRectMake(100+self.bili, 0, 100- self.bili, 50);

        

        self.leftLabel.layer.mask = [CALayer layer];

        self.leftLabel.layer.mask.backgroundColor = [[UIColor blackColor] CGColor];

        self.leftLabel.layer.mask.frame = CGRectMake(0, 0, 100+self.bili, 50);

        

        self.rightLabel.layer.mask = [CALayer layer];

        self.rightLabel.layer.mask.backgroundColor = [[UIColor blackColor ] CGColor];

        self.rightLabel.layer.mask.frame = CGRectMake(100+self.bili, 0, 100- self.bili, 50);

    }

      

    KVNMaskedPageControl的实现原理也是如此:

    http://www.oschina.net/p/kvnmaskedpagecontrol/similar_projects?lang=0&sort=view&p=1 

  • 相关阅读:
    Git与GitHub(利用git上传本地文件到GitHub上面)
    PHP之上传文件upload.php
    PHP之数据库连接配置文件
    MUI 之picker,dialog,a标签——刷新页面问题(保留picker选中的数据)
    MUI自定义select down 下拉框
    Google按ESC退出全屏(带iframe网站)解决问题方案
    提高开发效率 -> 图片
    sublime text
    头脑风暴
    http://www.uupoop.com/ps/
  • 原文地址:https://www.cnblogs.com/oumygade/p/4476133.html
Copyright © 2011-2022 走看看