SwiftUI之画方格
画方格非常简单,首先定义一个结构体,类型为shape
struct Checkerboard: Shape {}
定义结构体内的变量,即行列数
let rows: Int
let columns: Int
定义路径函数
func path(in rect: CGRect) -> Path {}
在路径函数中确定每一个方块的大小
let rowSize = rect.height / CGFloat(rows)
let columnSize = rect.width / CGFloat(columns)
画一个类似于棋盘的方格,所以循环间隔画出方格
for row in 0 ..< rows {
for column in 0 ..< columns {
if (row + column).isMultiple(of: 2) {
// this square should be colored; add a rectangle here
let startX = columnSize * CGFloat(column)
let startY = rowSize * CGFloat(row)
let rect = CGRect(x: startX, y: startY, width: columnSize, height: rowSize)
path.addRect(rect)
}
}
}
return path
在View中调用该结构体视图,配置其大小,以及调色
struct DrawCheckerboard: View {
var body: some View {
Checkerboard(rows: 20, columns: 20)
.fill(Color.red)
.frame(width: 350, height: 350)
}
}
如图
改一下行列数
Checkerboard(rows: 10, columns: 10)
.fill(Color.red)
.frame(width: 350, height: 350)
简单图形完成