gpt4 book ai didi

swift - UIView 及其子类上具有不同方法的相同属性

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

因此要求在所有 UIView 子类上都有一个属性,如 myView.property。对于许多子类来说,会有一些特定的功能,比如 UILabel 并且它的所有子类都只有标签特定的东西。其他元素也一样...

所以我真的需要能够做到以下几点:

MyView.property.methodSharedByAllUIViewSubclasses
MyImageView.property.someImageViewSpecificMethod
MyLabel.property.onlyLabelSpecificMethod

如能提供有关如何在 Swift 中针对此类情况进行设计的任何帮助,我们将不胜感激。

编辑:我想使用协议(protocol)和协议(protocol)扩展来实现这个......

最佳答案

struct Property<T> {
let property: T

init(_ obj: T) {
property = obj
}
}

protocol PropertyDSL {
associatedtype DSL
var property: Property<DSL> { get set }
}

extension PropertyDSL {
var property: Property<Self> {
get {
return Property(self)
}
set { }
}
}

extension UIView: PropertyDSL {}

extension Property where T: UIView {
func methodSharedByAllUIViewSubclasses() {
}
}

extension Property where T: UIImageView {
func someImageViewSpecificMethod() {
}
}

extension Property where T: UILabel {
func onlyLabelSpecificMethod() {
}
}

关于swift - UIView 及其子类上具有不同方法的相同属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44780177/

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