我希望能够将一堆单个经过缩放的var对象组合在一起,就像一个数组一样。这对于将效果应用于该组中的所有对象很有用。我下面的代码无法编译。我认为这样的事情是可能的。
let group = [
var pic = UImageView()
var text = UILabel()
var pic2 = UIIMageView()
]
如果您正在寻找一组可以应用效果的东西,那么使用协议将为您提供很好的服务。
协议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.