无法绘制自定义视图
Not able to draw custom view
我正在尝试创建类似于自定义视图的三角形,但它没有显示。我不明白哪里出了问题
我指的是这个
class ViewController: UIViewController {
@IBOutlet weak var testView: UIView!
override func viewDidLoad() {
super.viewDidLoad()
let triangleView = TriangleView()
triangleView.draw(CGRect(x: 0, y: 0, width: 50, height: 50))
testView.addSubview(triangleView)
}
}
class TriangleView: UIView {
override func draw(_ rect: CGRect) {
let path = UIBezierPath()
path.move(to: .zero)
path.addLine(to: CGPoint(x: rect.maxX, y: 0))
path.addLine(to: CGPoint(x: 0, y: rect.maxY))
path.close()
UIColor.red.withAlphaComponent(1).setFill()
path.fill()
}
}
想要创建自定义视图
您不需要显式调用 draw() 方法。只需设置三角形视图的框架即可。
override func viewDidLoad() {
super.viewDidLoad()
let customView = TriangleView.init(frame: CGRect(x: 0, y: 0, width: 50, height: 50))
testView.addSubview(customView)
}
希望对您有所帮助!!!
我正在尝试创建类似于自定义视图的三角形,但它没有显示。我不明白哪里出了问题
我指的是这个
class ViewController: UIViewController {
@IBOutlet weak var testView: UIView!
override func viewDidLoad() {
super.viewDidLoad()
let triangleView = TriangleView()
triangleView.draw(CGRect(x: 0, y: 0, width: 50, height: 50))
testView.addSubview(triangleView)
}
}
class TriangleView: UIView {
override func draw(_ rect: CGRect) {
let path = UIBezierPath()
path.move(to: .zero)
path.addLine(to: CGPoint(x: rect.maxX, y: 0))
path.addLine(to: CGPoint(x: 0, y: rect.maxY))
path.close()
UIColor.red.withAlphaComponent(1).setFill()
path.fill()
}
}
想要创建自定义视图
您不需要显式调用 draw() 方法。只需设置三角形视图的框架即可。
override func viewDidLoad() {
super.viewDidLoad()
let customView = TriangleView.init(frame: CGRect(x: 0, y: 0, width: 50, height: 50))
testView.addSubview(customView)
}
希望对您有所帮助!!!