gpt4 book ai didi

ios - 符合 UIApperance 的自定义类允许使用哪些 Swift 属性类型?

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

我最近尝试向我的一个 Swift 类 (ScoreView) 添加符合 UIApperance 的属性,但没有成功。您可以在下面看到相关代码:

private var gaugeThresholds = Array<GaugeThreshold?>(repeating: nil, count: ScoreView.maxGaugeIntervals)

public func gaugeThreshold(forInterval interval: Int) -> GaugeThreshold? {
return (0 <= interval && interval < ScoreView.maxGaugeIntervals) ? self.gaugeThresholds[interval] : nil
}

public func setGaugeThreshold(_ threshold: GaugeThreshold, forInterval interval: Int) {
if 0 <= interval && interval < ScoreView.maxGaugeIntervals {
self.gaugeThresholds[interval] = threshold
}
}

其中 GaugeThreshold 是一个 Swift 结构:

public struct GaugeThreshold {
let until: Float
let color: UIColor

public init(until: Float, color: UIColor) {
self.until = until
self.color = color
}
}

这失败得很惨,我能想到的失败的唯一原因是我为属性使用了自定义类型,而不是标准类型之一。

根据 UIAppearanceContainer 文档:属性类型可以是任何标准的 iOS 类型:idNSIntegerNSUIntegerCGFloatCGPointCGSizeCGRectUIEdgeInsets UIOffset。但是如果你浏览list of methods and properties conforming to UIAppearance as of iOS 8.0 ,您可以看到还有其他类型可以正常工作,例如 UIImageUIColor... 所以有人知道什么类型可以有效用作 UIAppearance 属性?

最佳答案

当然,没有什么比发帖到 StackOverflow 五分钟后找出答案更好的了。原来关键是 id 类型。改变

public struct GaugeThreshold { ...

public class GaugeThreshold: NSObject { ...

成功了。

关于ios - 符合 UIApperance 的自定义类允许使用哪些 Swift 属性类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44429248/

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