swift 快速奔跑的兔几 本节的内容是:绘画

一个应用程序绘制图形时,它首先创建一个用于在其中绘制内容的画布,cocoa称之为图形上下文。
在创建一个图形上下文的时候,会指出上下文的大小。在此画布之外所有的绘画操作都将被忽略,不会出现在画布上。

框架矩形:用于定义视图的大小和位置的矩形。
视图可以包含多个子视图,如果一个视图位于另一个视图内部,那么当超视图移动时,它也会移动。框架矩形是相对于其超视图定义的。而边界矩形则是相对于自己的坐标空间的位置和大小。
尽管边界矩形的尺寸通常与框架矩形相同,但是也并不是必须如此。例如,如果视图被旋转,框架矩形将改变大小和位置,而边界则保持不变。

如下代码为绘制纯色矩形的栗子:
// 绘制图像
class RabbitsView: UIView { override func drawRect(rect: CGRect) { UIColor.grayColor().setFill() let pathNew = UIBezierPath(rect: self.bounds) pathNew.fill() } } let viewRect = CGRect(x: 0,y: 0,width: 100,height: 100) let newVIew = RabbitsView(frame: viewRect) 
下面的栗子是圆角矩形的代码
// 绘制图像
class RabbitsView: UIView { override func drawRect(rect: CGRect) { // 收缩边缘 let pathRect = CGRectInset(self.bounds,1,1) let path = UIBezierPath(roundedRect: pathRect,cornerRadius: 10) //let path = UIBezierPath(rect: self.bounds) path.linewidth = 4 UIColor.grayColor().setFill() UIColor.blackColor().setstroke() path.fill() path.stroke() } } let viewRect = CGRect(x: 0,height: 100) let newVIew = RabbitsView(frame: viewRect) 
下面是创建自定义路径的栗子:
// 绘制图像
class RabbitsView: UIView { override func drawRect(rect: CGRect) { let bezierPathNew = UIBezierPath() let drawingRect = CGRectInset(self.bounds,self.bounds.size.width*0.05,self.bounds.size.height*0.05) let topLeft = CGPointMake(CGRectGetMinX(drawingRect),CGRectGetMaxY(drawingRect)) let topRight = CGPointMake(CGRectGetMaxX(drawingRect),CGRectGetMaxY(drawingRect)) let bottomright = CGPointMake(CGRectGetMaxX(drawingRect),CGRectGetMinY(drawingRect)) let bottomLeft = CGPointMake(CGRectGetMinX(drawingRect),CGRectGetMinY(drawingRect)) let center1 = CGPointMake(CGRectGetMidX(drawingRect),CGRectGetMidY(drawingRect)) bezierPathNew.movetoPoint(topLeft) bezierPathNew.addLinetoPoint(topRight) bezierPathNew.addLinetoPoint(bottomLeft) bezierPathNew.addCurvetoPoint(bottomright,controlPoint1: center1,controlPoint2: center1) bezierPathNew.closePath() UIColor.grayColor().setFill() UIColor.magentaColor().setstroke() bezierPathNew.fill() bezierPathNew.stroke() } } let viewRect = CGRect(x: 0,height: 100) let newVIew = RabbitsView(frame: viewRect) 
绘制多条子路径的栗子如下:
// 绘制图像
class RabbitsView: UIView { override func drawRect(rect: CGRect) { let bezierPathNew = UIBezierPath() let drawingRect = CGRectInset(self.bounds,controlPoint2: center1) bezierPathNew.closePath() let circleRect = CGRectInset(rect,rect.size.width*0.3,rect.size.height*0.3) let bezierPathSecond = UIBezierPath(ovalInRect: circleRect) let bezierPathF = UIBezierPath() bezierPathNew.appendpath(bezierPathSecond) bezierPathF.appendpath(bezierPathNew) UIColor.grayColor().setFill() UIColor.magentaColor().setstroke() bezierPathF.fill() bezierPathF.stroke() } } let viewRect = CGRect(x: 0,height: 100) let newVIew = RabbitsView(frame: viewRect)
呼~好多代码啊~~作为一只兔子要去蹦哒一会儿了喔~~~

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...