zoukankan      html  css  js  c++  java
  • 记录一次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)];

    }

     

     

     

     

     

     

     

     

  • 相关阅读:
    CentOS防火墙相关命令
    Redis中几种数据类型的基本操作指令
    Pandas字符串操作及实例应用
    Pandas排列和随机采样
    Pandas数据的去重,替换和离散化,异常值的检测
    Pandas重塑和轴向旋转
    Pandas合并数据集之concat、combine_first方法
    Pandas合并数据集之merge、join方法
    转正述职报告
    Pandas操作数据库及保存csv
  • 原文地址:https://www.cnblogs.com/thxios/p/5145518.html
Copyright © 2011-2022 走看看