组单个声明的变量在一起

问题描述 投票:0回答:1

我希望能够将一堆单个经过缩放的var对象组合在一起,就像一个数组一样。这对于将效果应用于该组中的所有对象很有用。我下面的代码无法编译。我认为这样的事情是可能的。

let group = [
var pic = UImageView()
var text = UILabel()
var pic2 = UIIMageView()

]
arrays swift let
1个回答
0
投票

如果您正在寻找一组可以应用效果的东西,那么使用协议将为您提供很好的服务。

协议FancyEffects {func applyFancyEffect(参数1:整数,参数2:字符串)var fancyThingToTrack}

然后制造出符合该协议的其他物品:

protocol FancyEffects {
    func applyFancyEffect(parameter1: Int, parameter2: String)
    var fancyThingToTrack: Int? { get }
}

class FancyImageView: UIImageView, FancyEffects {
    var fancyThingToTrack: Int?
    func applyFancyEffect(parameter1: Int, parameter2: String) {
        // Do your fancy effect for the imageView
    }

    func applyFancierEffect() {
        // do something fancier
    }
}

class FancyLabel: UILabel, FancyEffects {
    var fancyThingToTrack: Int?

    func applyFancyEffect(parameter1: Int, parameter2: String) {
        // Make your text super fancy
    }

    func applyFancierEffect() {
        // do something fancier
    }
}

您不需要在其中拥有fancyThingToTrack,我只是想展示如果您希望在协议中如何拥有它。

然后您可以将这些事物的数组称为:

    let fancyThings: [FancyEffects] = [
        FancyImageView(image: yourImage),
        FancyLabel(frame: someFrame)
    ]
    etc.
© www.soinside.com 2019 - 2024. All rights reserved.