• 记录一次Quartz2D学习(七)


    (六)内主要讲述了图片的裁剪

    本次主要讲交互

    7.交互

      7.1  通过外部刷新内部的显示效果

        初始化的时候设定好初始值,调用setNeedsDisplay方法来重新绘制

    - (instancetype)init

    {

        self = [super init];

        if (self) {

            self.backgroundColor = [UIColor whiteColor];

        }

        return self;

    }

    - (instancetype)initWithFrame:(CGRect)frame

    {

        self = [super initWithFrame:frame];

        if (self) {

            NSLog(@"initWithFrame");

            self.radius = 1 ;

            self.backgroundColor = [UIColor whiteColor];

        }

        return self;

    }

     

    -(void)setRadius:(float)radius{

        _radius = radius*100;

        [self setNeedsDisplay];

    }

     

    - (void)drawRect:(CGRect)rect {

        NSLog(@"drawRect:%f",self.radius);

        CGContextRef  ctx = UIGraphicsGetCurrentContext();

        [[UIColor grayColor] set];

        CGContextAddArc(ctx, 150, 150, self.radius, 0, M_PI*2, 0);

        

        CGContextFillPath(ctx);

    }

     

     

     

     

     

     

    7.2使用runLoop进行逐帧播放的动画 

     

    - (instancetype)initWithFrame:(CGRect)frame

    {

        self = [super initWithFrame:frame];

        if (self) {

            self.backgroundColor = [UIColor whiteColor];

            self.img_y=0;

    //初始化时间管理器

            CADisplayLink *  displayer =[CADisplayLink displayLinkWithTarget:self selector:@selector(upDateImage)];

    //添加时间管理器到runLoop

            [displayer addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];

        }

        return self;

    }

    -(void)upDateImage{

        [self setNeedsDisplay];

    }

    - (void)drawRect:(CGRect)rect {

    //位移量

        self.img_y +=5;

    //防止越界

        if (self.img_y > [UIScreen mainScreen].bounds.size.height) {

            self.img_y = 0;

        }

    //可有可无

        CGContextRef  ctx = UIGraphicsGetCurrentContext();

    //图片加载

        UIImage * img =[UIImage imageNamed:@"图标-首页"];

    //图片绘制到对应点

        [img drawAtPoint:CGPointMake(0, self.img_y)];

    }

     

     

     

     

     

     

     

     

  • 相关阅读:
    Hadoop入门
    Redis缓存分布式高可用架构原理
    ES分布式搜索引擎架构原理
    Java锁,多线程与高并发,JUC并发包
    图算法--拓扑序列
    数据结构--数组模拟队列
    数据结构--数组模拟栈
    数据结构--数组模拟双链表
    数据结构--数组模拟单链表
    基础算法--双指针
  • 原文地址:https://www.cnblogs.com/thxios/p/5145518.html
Copyright © 2020-2023  润新知