我有一个UIVie
w班。并将其分配给UIView
内部的ViewController
。
我正在为UIView
中的一个圆绘制动画。
如何将UIView
加载到ViewController
中?
ViewDidLoad
不起作用或出现错误。
LoadView
也不起作用。
答案 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()
}
}