Masonry 源码:

官方文档对ShapeLayer的定义如下:

  • 简介UIDeviceOrientation即我们手持的移动设备的Orientation,是一个三围空间,故有六个方向:

Masonry是一个轻量级的布局框架 拥有自己的描述语法
采用更优雅的链式语法封装自动布局 简洁明了 并具有高可读性 而且同时支持
iOS 和 Max OS X。

A layer that draws a cubic Bezier spline in its coordinate space.

首先使用Masonry前本文默认读者对AutoLayout熟练使用或者有基本了解,下面看一下xib中对AutoLayout的使用:

可以理解为ShapeLayer是其坐标空间内绘有贝塞尔曲线的图层。

 UIDeviceOrientationUnknown, UIDeviceOrientationPortrait, // Device oriented vertically, home button on the bottom UIDeviceOrientationPortraitUpsideDown, // Device oriented vertically, home button on the top UIDeviceOrientationLandscapeLeft, // Device oriented horizontally, home button on the right UIDeviceOrientationLandscapeRight, // Device oriented horizontally, home button on the left UIDeviceOrientationFaceUp, // Device oriented flat, face up UIDeviceOrientationFaceDown // Device oriented flat, face down

澳门微尼斯人手机版 1澳门微尼斯人手机版 2上两图中可以看出只要设置相应得局限,控制好父视图与子视图之间的约束关系就能实现需要的需求。

使用ShapeLayer可以制作蒙板和图层动画,由于它继承自CALayer,因此拥有CALayer的全部属性。而ShapeLayer最大的不同在于它依赖于贝塞尔曲线UIBezierPath,用贝塞尔曲线可以定义ShapeLayer的形状。

  • 获取通过[UIDevice currentDevice].orientation获取当前设备的方向当关闭了系统的横竖屏切换开关,即系统层级只允许竖屏时,再通过上述方式获取到的设备方向将只是UIDeviceOrientationPortrait

使用:

ShapeLayer还有两个重要的属性:StrokeStartStrokeEnd,它控制ShapeLayercgPath路径的绘制起点和终点,区间都为0~1,0代表绘制的起始位置,1代表绘制的终点位置。

UIDeviceOrientation是硬件设备的方向,是随着硬件自身改变的,只能取值,不能设置。

下图是Masonry支持的一些属性:

下面就分别从图形动画和蒙版两方面来讲讲ShapeLayer的使用。

  • 简介UIInterfaceOrientation即我们看到的视图的Orientation,可以理解为statusBar所在的方向,是一个二维空间,有四个方向:

澳门微尼斯人手机版 3

  • ShapeLayer图形动画
  • 澳门微尼斯人手机版,ShapeLayer蒙版

以上属性与NSLayoutAttrubute的对照表如下:

本文demo的github地址:<a>;

 UIInterfaceOrientationUnknown = UIDeviceOrientationUnknown, UIInterfaceOrientationPortrait = UIDeviceOrientationPortrait, UIInterfaceOrientationPortraitUpsideDown = UIDeviceOrientationPortraitUpsideDown, UIInterfaceOrientationLandscapeLeft = UIDeviceOrientationLandscapeRight, UIInterfaceOrientationLandscapeRight = UIDeviceOrientationLandscapeLeft

发表评论

电子邮件地址不会被公开。 必填项已用*标注