智能化Swift代码的最佳方法是什么?

时间:2017-02-06 14:40:30

标签: swift

我是Swift 3 / Xcode8的新手,但是我正在网站的其他资源中借助这个网站慢慢地教自己一些零碎的东西。

这听起来像是一个完整的noob问题,但是这个代码的最佳方法是什么?

@IBOutlet var initialInvestigationCollection: [UIView]! {
    didSet {
        initialInvestigationCollection.forEach {
            $0.isHidden = true
        }
    }
}

@IBAction func expandInitialInvestigationBtn(_ sender: Any) {
    UIView.animate(withDuration: 0.1) {
        self.initialInvestigationCollection.forEach {
            $0.isHidden = !$0.isHidden
        }
    }
}

我觉得我想创建一个函数并在每个方法中调用它。唯一的问题是,initialInvestigationCollectionexpandInitialInvestigationBtn每次都会改变,我打算在课堂上的10个不同部分运行这两个函数。

也许我只是因为不想反复输入它而变得懒惰!

1 个答案:

答案 0 :(得分:0)

如果您发布链接,将在代码审核中重新发布,但这是我将如何做的:

@IBOutlet var initialInvestigationCollection: [UIView]! {
    didSet {
        setInitialInvestigationsHidden(to: true, animated: false)
    }
}

@IBAction func expandInitialInvestigationBtn(_ sender: Any) {
    toggleInitialInvestigationsHidden()
}

func toggleInitialInvestigationsHidden() {
    setInitialInvestigationsHidden(to: initialInvestigationCollection[0].isHidden)
}

func setInitialInvestigationsHidden(to hidden: Bool, animated: Bool = true) {
    if animated {
        UIView.animate(withDuration: 0.1) {
            initialInvestigationCollection.forEach { $0.isHidden = hidden }
        }
    }
    else {
        initialInvestigationCollection.forEach { $0.isHidden = hidden }
    }
}

它使您可以灵活地显示,隐藏或切换,清除代码其他部分的用法,但仍然清楚代码的用途是什么。