【发布时间】:2017-09-24 13:58:36
【问题描述】:
我对 Swift 很陌生。我试图在 Swift 的 UIView 上绘制网格(如图形页面)。代码正在运行,但我没有看到任何行。我看不出我做错了什么。
在 Storyboard 中,我在 ViewController 上添加了一个视图。
在代码中,我创建了一个 GridView.swift 并将其添加到上面的视图中。这是 GridView 类的代码。正在调用函数 draw 并且代码运行时没有任何错误。它只是在做我认为它会做的事情。
它甚至没有画一条线(我删除了 for 循环并尝试画一条线)。这似乎很基本,应该可以工作。
import Foundation
import UIKit
class GridView: UIView
{
fileprivate var gridWidthMultiple: CGFloat
{
return 10
}
fileprivate var gridHeightMultiple : CGFloat
{
return 20
}
fileprivate var gridWidth: CGFloat
{
return bounds.width/CGFloat(gridWidthMultiple)
}
fileprivate var gridHeight: CGFloat
{
return bounds.height/CGFloat(gridHeightMultiple)
}
fileprivate var gridCenter: CGPoint {
return CGPoint(x: bounds.midX, y: bounds.midY)
}
fileprivate func drawGrid()
{
let path = UIBezierPath()
path.lineWidth = 5.0
for index in 1...Int(gridWidthMultiple) - 1
{
let start = CGPoint(x: CGFloat(index) * gridWidth, y: 0)
let end = CGPoint(x: CGFloat(index) * gridWidth, y:bounds.height)
path.move(to: start)
path.addLine(to: end)
}
}
override func draw(_ rect: CGRect)
{
drawGrid()
}
}
【问题讨论】: