UIView不显示ViewController Swift 4中的元素

时间:2018-08-15 18:54:02

标签: ios xcode swift4

我有一个UIVie w班。并将其分配给UIView内部的ViewController

我正在为UIView中的一个圆绘制动画。

如何将UIView加载到ViewController中?

ViewDidLoad不起作用或出现错误。 LoadView也不起作用。

2 个答案:

答案 0 :(得分:0)

为视图控制器创建类,可以说UIViewController的ParentController子类。

在ParentController中创建UIView的出口。

不是为UIView创建类,而是在ParentController中定义函数以绘制圆并在ParentController中调用它。

函数调用后,显示将UIView添加到ParentController 例如-self.view.addSubview(self.cirecleUIview)

答案 1 :(得分:0)

我个人建议

1)为您的班级创建一个文件,例如MyView。

2)也创建一个NIB / XIB,因此您最终可以添加其他元素。

3)在主故事板上的控制器中添加一个自定义元素(属于MyView类)

4)将控制器中的插座添加到视图中(以便您可以填充/设置/访问它。)

5)切勿直接调用绘图函数(将是自动..或使用setNeedsUpdate ..手动触发)。

6)覆盖init / awake方法,因此您可以从资源或代码中加载:

override init(frame: CGRect) {
    super.init(frame: frame)

    prepare()

}

required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
    prepare()
}

final private func prepare(){
    // your "init" code here..
}

6)实现您的绘制代码:

override func draw(_ rect: CGRect) {
    // stupid code.. will fill in red...

if let context = UIGraphicsGetCurrentContext(){             
        context.setFillColor(UIColor.red.cgColor)
        context.addRect(rect)
        context.fillPath()
        }
}