如何根据视图控制器中的输入在视图中绘制形状?

时间:2016-08-18 02:45:48

标签: ios swift drawing

我想要做的一个非常基本的版本是在视图控制器中有一个滑块和一个视图。滑块表示多边形的边数,当您移动滑块时,在子视图中绘制一个形状。

我需要一个非常简单的正确方向。我只是不确定视图控制器和视图之间的交互如何工作。

1 个答案:

答案 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后会调用didSetsides会调用polygonView。这告诉iOS需要绘制视图,因此iOS会在setNeedsDisplay上调用drawRect