编辑代码

//
//	ViewController.swift	
//	DrawMusic	
//
//Created by Zhifeng Chen on 2020/8/4.
// Copyright   @ 2020 Zhifeng Chen.All rights reserved.
//

import UIKit
class Shape {
//名称
var name : String?
//边数
var sides : Int?
//左上角的位置坐标
var origin :CGPoint?
//线条颜色
var lineColor :UIColor = UIColor.red
//填充颜色
var fillColor :UIColor = UIColor.green
//线条宽度
var lineWidth : CGFloat = 2
//构造器函数init
init(name : String, sides : Int, origin :CGPoint) {
self.name = name 
self.sides = sides 
self.origin = origin
}
//自定义方法 sayHello 
func sayHello(){
print("Shape:\(name!),sides \(sides!), origin (\(origin!.x),\(origin!.y)) ")
}
}
class CzfView : UIView {
//成员变量(属性)shape,其类型为 Shape 
var shape : Shape?
//重载UIView的draw方法
override func draw(rect: CGRect) {
//判断shape变量是否为空值ni1 
guard let s = shape else{
return
}
//不为空,则调用 shape 这个实例的方法 
s.sayHello()
}
}
class ViewController: UIViewController {

override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
//此处调用 Shape类,建立一个对象(实例)myShape
let myShape = Shape(name:"BaseShape", sides: 0,origin: CGPoint(x:o, y:0))
//此处建立了一个CzfView的实例myView
let width = self.view.frame.size.width 
let height = self.view.frame.size.height
let myView = CzfView(frame: CGRect(x: 0, y: 0, width: width, height: height))
//赋值给myView中的成员变量(属性)shape 
myView.shape = myShape
//显示myView
self.view.addSubview(myView)
}
}
//自定义方法 drawBezierPath用于画图 
func drawBezierPath() {
//调用贝塞尔曲线函数UIBezierPath() 
let path = UIBezierPath()
//圆弧的中心点 center,	其坐标为(100,100)	
let center : CGPoint	= CGPoint(x:100, y:100)	
//圆弧的半径长度 radius	其值为80	
let radius : CGFloat = 80	
//生成一个圆 
path.addArc(withCenter: center, radius: radius, startAngle: 0, endAngle: CGFloat.pi*2, clockwise: true)
//线条宽度为 5
path.lineWidth = 5
//线条颜色为red红色
UIColor.red.setstroke()
//画出这个圆 
path.stroke()
}