如何在Swift中为多个变量赋值?

时间:2016-09-21 18:57:32

标签: ios swift swift3

我有一个switch语句,在每种情况下,我都有许多语句:

star1.isHidden = true

此实例中的star1是图像视图。有没有办法将它分配给多个变量,例如star2,star3等。有10个案例,它相当于多行代码,我无法帮助,但我认为这样做更有效/可读的方式它

4 个答案:

答案 0 :(得分:3)

如果您使用的是界面构建器,则可以使用OutletCollection。否则,您可以创建所有变量的数组并使用for-in循环。

答案 1 :(得分:2)

您可以扩展一系列UIView s,它们将遍历视图并设置每个隐藏的视图。

extension Sequence where Element == UIView {
    func setHidden(_ hide: Bool) {
        forEach { $0.isHidden = hide }
    }
}

let viewsToHide = [star1, star2, star3]
viewsToHide.setHidden(true)

答案 2 :(得分:0)

有很多种方法,其中最常见的方法是for循环。在这种情况下,您需要一组星星,例如数组:[Star]()

for (star in stars) {
   star.isHidden = true
}

关于您的设置的信息不足以为您提供更好的推荐。

答案 3 :(得分:0)

如果对象是基于NSObject的,则可以使用键值编码。这是一个Swift游乐场,但它适用于所有地方:

class Star:NSObject {
    public var hidden = false
}

let star1 = Star()
let star2 = Star()
let star3 = Star()
let star4 = Star()
let star5 = Star()
let starMap:NSArray = [star1, star2, star3, star4]

starMap.setValue(true, forKey: "hidden")

Playground Result