gpt4 book ai didi

ios - 如何在 View Controller 之外的类中创建 UI 元素

转载 作者:行者123 更新时间:2023-11-28 13:12:05 26 4
gpt4 key购买 nike

我正在制作应用程序,我正在尝试制作一个包含带有问题的标签的 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com