UIBezierPath 类允许你在自定义的 View 中绘制和渲染由直线和曲线组成的路径,你可以在初始化的时候, 直接为你的 UIBezierPath 指定一个几何图形,路径可以是简单的几何图形例如:矩形、椭圆、弧线之类的, 也可以是相对比较复杂的由直线和曲线组成的多边形。
当你定义完图形以后,你可以使用额外的方法将你的路径直接绘制在当前的绘图上下文中。
UIBezierPath是由几何路径和属性组成的,属性是用来在渲染阶段描绘几何路径的,比如线宽之类的东西。 路径和属性是完全独立的, 他们并不互相依赖, 你可以分开分开去设置他们。 一旦你以自己喜欢的方式配置了UIBezierPath对象,你就可以调用方法通知UIBezierPath在当前的绘图上下文中绘制图形了。
因为创建、 配置、 渲染路径等操作, 都是完全不同的步骤, 所以你可以在你的代码中非常容易的对UIBezierPath对象进行复用。你甚至可以使用同一个UIBezierPath对象去渲染同一个图形很多次, 你也可以再多次渲染的间隔中, 修改属性来渲染出不同样式的路径。
当你创建了一个空的UIBezierPath 对象时, currentPoint 这个属性是未定义的,你需要手动的去设置.currentPoint. 如果你希望在不绘制任何线条的情况下移动currentPoint,你可以使用 moveToPoint:方法。其他的方法都会导致在你的路径中添加额外的直线或曲线,所有构造路径相关的方法, 都会以当前路径的currentPoint 为起点,以你指定的endPoint为终点进行绘制。当完成绘制之后,会自动将新增的这条线的终点设置为UIBezierPath 对象的currentPoint。
一个简单的UIBezierPath可以包含许多的开放子路径和封闭子路径. 调用closePath方法将会闭合路径, 它将会从currentPoint到 子路经的firstPoint绘制一条直线. 调用moveToPoint:方法将会结束当前的子路径, 但是并不会自动闭合当前的子路径, 并且会将currentPoint移动到指定的点, 也就是下一条绘制路径的起始点。
UIBezierPath中所有的子路径都会共享同样的绘图属性. 如果你希望绘制一些子路径, 但是不适用相同的绘图属性, 那么你就只能创建很多的UIBezierPath对象来承载每一条路径。
当你为UIBezierPath 对象配置完几何路径和绘图属性之后, 你就可以使用stroke 和 fill 方法在当前的绘图上下文中进行绘制了. stroke方法将会使用当前的strokeColor 和 绘图属性来描绘曲线的轮廓. 同样的, fill 方法将会使用fillColor 来填充路径所围成的图形(使用UIColor 类方法来设置strokeColor 和 fillColor)。
出处:
作者:李国安
链接:http://www.jianshu.com/p/6130b51a0b71
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。