【发布时间】:2019-12-23 02:17:19
【问题描述】:
我希望我的 swift 代码创建一种循环,除了用户声明的之外,所有项目都遵循该循环。因此,例如下面,我列出了 4 个按钮和 1 个与按钮链接的 objc 函数。在 b1 hit 我知道我可以写
b1.backgroundcolor = blue and b2.backgroundcolor = green, b3.backgroundcolor = green。 Butt 我想看看我是否可以做类似[b1!,b2,b3].forEach{$0.backgroundcolor = .green.}
import UIKit
class ViewController: UIViewController {
var b1 = UIButton()
var b2 = UIButton()
var b3 = UIButton()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
[b1,b3,b2].forEach{
$0.translatesAutoresizingMaskIntoConstraints = false
view.addSubview($0)
$0.backgroundColor = .blue
}
b1.addTarget(self, action: #selector(b1Hit), for: .touchUpInside)
}
@objc func b1Hit(){
change all buttons background color to green except b1
}
}
【问题讨论】:
-
根据
b1、b2和b3在功能上的相似程度,您可以使用sender参数 (buttonHit(sender: UIButton)) 创建一个通用函数,并使用sender参数以了解 3 个按钮中的哪一个被按下。从那里,您可以进行循环,同时知道要跳过哪个按钮。
标签: arrays swift loops foreach except