我正在制作应用程序,我正在尝试制作一个包含带有问题的标签的 View 。我想在我的应用程序中使用这个 View ,因为我会反复使用它,所以我做了一个类(如果我想做一些改变,我可以从一个地方做)。 UIView
称为 questionView
(var questionView = UIView()
)。问题是当我想让 questionView
成为 view
的 subview 时。该错误说我没有我理解的“ View ”。我没有 View ,但我怎样才能得到它?谢谢
这是我的问题类中的内容:
import Foundation
import UIKit
class Question {
// PROPERTIES:
var questionLabel = UILabel()
var questionView = UIView()
// METHODS:
func createQuestion (input:String) {
// some code .... not important
// THIS:
self.view.addSubview(questionView)
}
// ... next code, also not important
}
更新:
这是我的解决方案。它有效,但我认为从编程的角度来看它是不正确的。有人可以告诉我任何相关信息吗?谢谢
我的类(class)在单独的 swift 文件中:
我的类(class)在单独的 swift 文件中:
class LabelClass {
var view = UIView()
init (view: UIView) {
self.view = view
}
var lbl = UILabel()
var lblView = UIView()
func makeLabel () {
self.lbl.frame = CGRectMake(0, 0, 150, 50)
self.lbl.text = "Text text text"
self.lbl.numberOfLines = 0
self.lblView.frame = CGRectMake(20, 20, 150, 50)
self.lblView.addSubview(self.lbl)
self.view.addSubview(lblView)
}
}
我的 ViewController.swift 的一段代码:
override func viewDidLoad() {
super.viewDidLoad()
// Added code:
var object = LabelClass(view: self.view)
object.makeLabel()
}
最佳答案
我不了解 Swift,但据我所知,只有 UIViewController
的实例有一个 view
属性,类 Question
没有,所以你不能向它添加 subview 。
您可能想要创建一个包含问题标签的 UIView
的子类,或者将 questionLabel
添加为 questionView
的 subview 。
关于ios - 如何在 View Controller 之外的类中创建 UI 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30933018/