【发布时间】:2021-02-15 10:10:53
【问题描述】:
我一直在尝试创建一个三角形按钮。为此,最初我尝试使用 BezierPath 创建一个基本的三角形。
为了创建一个三角形;我创建了一个 UIView 类。代码如下:
class BezierView: UIView {
override func draw(_ rect: CGRect) {
let triangle = UIBezierPath()
triangle.move(to: CGPoint(x: 200, y: 200))
triangle.addLine(to: CGPoint(x: 160, y: 240))
triangle.addLine(to: CGPoint(x: 250, y: 240))
triangle.close()
}
在创建了 Bezierview 类之后,我尝试在我的主 ViewController 中调用这个自定义类。
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let bezierView = BezierView(frame: CGRect(x: 100, y: 100, width: 10, height: 10)) // Here I'm trying to determine the location and size of the triangle
bezierView.backgroundColor = .black
self.view.addSubview(bezierView)
}
}
这段代码所做的只是将一个黑色矩形形状带到屏幕上。当我尝试绘制一个基本三角形时,我的代码块不起作用。
虽然在创建了那种三角形之后,我想将它用作 UIButton 的框架。那么这有可能吗?我可以将按钮的框架设置为那个定制的三角形吗?据我所知; frame 是一个 CGRect,不能转换为 UIBezierPath。我能做些什么来解决这两个问题。 (首先创建一个三角形,然后将按钮框架塑造为自定义三角形)
感谢您的帮助。希望一切都得到了清楚的解释。
干杯。
【问题讨论】:
标签: ios swift uibezierpath