gpt4 book ai didi

ios - 使用 UILabel 的子类覆盖 UIButton 中的 titleLabel

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

我有一个 UILabel 的子类:

class MyLabel: UILabel {}

我想使用这个标签作为 UIButton 的 titleLabel:

class MyButton: UIButton { 

var label: MyLabel!

override open var titleLabel: MyLabel? {
get {
return label
}
}
}

它在 XCode 中编译,但我想在 Cocoapods 框架中使用它。当我尝试将其推送到存储库时,它会验证代码。它抛出一个错误:

WARN | [iOS] xcodebuild: /Users/user/Library/Developer/Xcode/DerivedData/App-dprjfnapcavegfcniqgbxhrinmym/Build/Products/Release-iphonesimulator/vieww/vieww.framework/Headers/vieww-Swift.h:197:63: warning: property type 'MyLabel * _Nullable' is incompatible with type 'UILabel * _Nullable' inherited from 'UIButton'

如何覆盖 titleLabel?子类可以吗?

最佳答案

更改您的 MyButton 类,以便 titleLabel 的返回类型为 UILabel?

class MyButton: UIButton {

var label: MyLabel!

override open var titleLabel: UILabel? {
get {
return label
}
}
}

这会消除正在生成的警告。但是,当您想使用 MyLabel 功能访问 titleLabel 时,您必须像这样进行转换:

if let myLabel = button.titleLabel as? MyLabel {
print(myLabel.classForCoder)
}

希望这个 hack 能解决这个问题。

关于ios - 使用 UILabel 的子类覆盖 UIButton 中的 titleLabel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50535674/

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