我想要做的一个非常基本的版本是在视图控制器中有一个滑块和一个视图。滑块表示多边形的边数,当您移动滑块时,在子视图中绘制一个形状。
我需要一个非常简单的正确方向。我只是不确定视图控制器和视图之间的交互如何工作。
答案 0 :(得分:1)
你走了。您创建自定义视图以绘制多边形。设置sides
属性后,它会自动调用setNeedsDisplay
,告诉iOS调用drawRect
。
class PolygonView: UIView {
var sides: Int = 0 {
didSet {
self.setNeedsDisplay()
}
}
override func drawRect(rect: CGRect) {
// Draw polygon using sides
}
}
在您的ViewController
中,当滑块值更改时更新sides
上的polygonView
:
class ViewController: UIViewController {
@IBOutlet weak var polygonView: PolygonView!
@IBAction func sliderChanged(sender: UISlider) {
let sides = Int(sender.value)
polygonView.sides = sides
}
}
因此,移动slider
时,将调用sliderChanged
。读取slider
的值并将其保存到sides
的{{1}}属性中。设置polygonView
后会调用didSet
,sides
会调用polygonView
。这告诉iOS需要绘制视图,因此iOS会在setNeedsDisplay
上调用drawRect
。