ios - 如何使用函数更新文本标签?

标签 ios iphone swift xcode label

如何使用函数更新 label.text? 这是我的代码:

func test() -> String!{
    return "2"
}

let label: UILabel = {
    let label = UILabel()
    label.text = "\(test)"
    label.translatesAutoresizingMaskIntoConstraints = false
    return label
}()

但是当我在应用程序中使用午餐时,屏幕显示了我 this

最佳答案

您无法在另一个属性的初始化程序中调用实例方法,因为您需要访问 self,并且在类完全初始化之前该访问不可用。

您可以通过将您的label设置为lazy var来解决这个问题,直到第一次访问它时才会对其进行初始化。然后你可以调用 self.test() 来访问你的函数:

lazy var label: UILabel = {
    let label = UILabel()
    label.text = self.test()
    label.translatesAutoresizingMaskIntoConstraints = false
    return label
}()
<小时/>

或者,您可以将 test 设为 static 函数,然后使用 MyClass.test() 调用它:

static func test() -> String {
    return "2"
}

let label: UILabel = {
    let label = UILabel()
    label.text = MyClass.test()
    label.translatesAutoresizingMaskIntoConstraints = false
    return label
}()

关于ios - 如何使用函数更新文本标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38658250/

相关文章:

c++ - 如何在不在 .h 文件中制作原型(prototype)的情况下将 Objective-C++ 类公开给 swift

IOS - 在后台监听whatsapp事件通知

ios - 生成 UIButton

swift - 将两个 Cloud Firestore 集合查询到 1 个对象中

android - 直播到 YouTube - 自适应比特率?

iphone - XCODE NSXML更改元素值

iphone - 两个日期之间的日期数组

iphone - CALayer 与 drawInRect : performance?

ios - 为什么我的语言包路径在iOS Swift中返回nil?

ios - 无法向 Swift 公开 Objective-C 类,进而导入 Swift 代码