如何根据视图控制器中的输入在视图中绘制形状?
How can I draw a shape in a view based on input in the view controller?
我想要做的一个非常基本的版本是在视图控制器中有一个滑块和一个视图。滑块表示多边形的边数,当您移动滑块时,会在子视图中绘制一个形状。
我只需要朝着正确的方向非常简单地推动。我只是不确定视图控制器和视图之间的交互是如何工作的。
给你。您创建自定义视图来绘制多边形。当它的 sides
属性 被设置时,它自己调用 setNeedsDisplay
告诉 iOS 调用 drawRect
.
class PolygonView: UIView {
var sides: Int = 0 {
didSet {
self.setNeedsDisplay()
}
}
override func drawRect(rect: CGRect) {
// Draw polygon using sides
}
}
在您的 ViewController
中,当滑块值更改时更新 polygonView
上的 sides
:
class ViewController: UIViewController {
@IBOutlet weak var polygonView: PolygonView!
@IBAction func sliderChanged(sender: UISlider) {
let sides = Int(sender.value)
polygonView.sides = sides
}
}
因此,当移动 slider
时,将调用 sliderChanged
。 slider
的值被读取并保存到polygonView
的sides
属性中。 didSet
在设置 sides
时被调用,而 polygonView
调用 setNeedsDisplay
自身。这告诉 iOS 需要绘制视图,因此 iOS 在 polygonView
.
上调用 drawRect
我想要做的一个非常基本的版本是在视图控制器中有一个滑块和一个视图。滑块表示多边形的边数,当您移动滑块时,会在子视图中绘制一个形状。
我只需要朝着正确的方向非常简单地推动。我只是不确定视图控制器和视图之间的交互是如何工作的。
给你。您创建自定义视图来绘制多边形。当它的 sides
属性 被设置时,它自己调用 setNeedsDisplay
告诉 iOS 调用 drawRect
.
class PolygonView: UIView {
var sides: Int = 0 {
didSet {
self.setNeedsDisplay()
}
}
override func drawRect(rect: CGRect) {
// Draw polygon using sides
}
}
在您的 ViewController
中,当滑块值更改时更新 polygonView
上的 sides
:
class ViewController: UIViewController {
@IBOutlet weak var polygonView: PolygonView!
@IBAction func sliderChanged(sender: UISlider) {
let sides = Int(sender.value)
polygonView.sides = sides
}
}
因此,当移动 slider
时,将调用 sliderChanged
。 slider
的值被读取并保存到polygonView
的sides
属性中。 didSet
在设置 sides
时被调用,而 polygonView
调用 setNeedsDisplay
自身。这告诉 iOS 需要绘制视图,因此 iOS 在 polygonView
.
drawRect