CALayer的autolayout

原创 2016年08月31日 15:25:34

autolayout不适用于layer

这里是这么解决的:重写view的layerClass,view使用auto layout,调用view的layoutSubviews重新绘制layer的边界

这里以shape layer为例子

在view.m中如下实现

+(Class)layerClass{
    return [CAShapeLayer class];
}

- (instancetype)init
{
    self = [super init];
    if (self) {
        ((CAShapeLayer *)self.layer).fillColor = [UIColor colorWithRed:0 green:183.0 / 255.0 blue:56.0 / 255.0 alpha:1.0].CGColor;
        ((CAShapeLayer *)self.layer).strokeColor = [UIColor colorWithRed:0 green:183.0 / 255.0 blue:56.0 / 255.0 alpha:1.0].CGColor;
        ((CAShapeLayer *)self.layer).strokeEnd = 0;
    }
    return self;
}
-(void)layoutSubviews{
    [super layoutSubviews];
    
    UIBezierPath *bezierPath = [UIBezierPath bezierPath];
    [bezierPath moveToPoint:CGPointMake(10, CGRectGetHeight(self.bounds) / 2.0)];
    [bezierPath addLineToPoint:CGPointMake(CGRectGetWidth(self.bounds), CGRectGetHeight(self.bounds) / 2.0)];
    ((CAShapeLayer *)self.layer).path = bezierPath.CGPath;
    
    ((CAShapeLayer *)self.layer).lineWidth = CGRectGetHeight(self.bounds);
    
}



版权声明:本文为博主原创文章,未经博主允许不得转载。

CALayer的基本使用demo

  • 2015年12月01日 03:12
  • 48KB
  • 下载

IOS_CALayer基本使用

  • 2015年05月23日 08:45
  • 409B
  • 下载

IOS SDK详解之CALayer(一)

原创Blog,转载请注明出处 http://blog.csdn.net/hello_hwc?viewmode=contents 前言:这个系列要更新Core Animation的内容,但是CALaye...

CALayer及其子类

  • 2016年01月05日 16:51
  • 3MB
  • 下载

CALayer的使用

  • 2015年04月01日 10:35
  • 40KB
  • 下载

Core Animation基础介绍、简单使用CALayer以及多种动画效果

Core Animation iOS 转自荣芳志的博客: Core Animation之基础介绍  Core Animation可以翻译为核心动画,它为图形渲...

CALayer制作进度条

  • 2015年11月08日 19:36
  • 978KB
  • 下载

CALayer samplecode

  • 2011年06月01日 13:42
  • 289KB
  • 下载

CALayer的认识和使用

一、什么是CALayer CALayer是一个图层,在UIView(视图)里面的一个图层。和UIView一样,都有自己的父图层和子图层,它们构成一个图层树的层次结构。图层绘制类似视图一样自底向上,...

图层CALayer的一些知识

  • 2014年12月15日 14:23
  • 35KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:CALayer的autolayout
举报原因:
原因补充:

(最多只允许输入30个字)