2015-11-08 195 views
0

如何在Swift中遍历对象/变量。附加对象时,我可以创建数组还是字典,以便我不必为每个按钮编写代码。我是一个nubie,所以请告诉我像我四岁。我在这里先向您的帮助表示感谢。遍历对象/变量Swift

import UIKit 
class ViewController: UIViewController { 

@IBOutlet weak var button1: UIButton! 
@IBOutlet weak var button2: UIButton! 
@IBOutlet weak var button3: UIButton! 
... 


override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 
    self.button1.alpha = 0.0 
    self.button2.alpha = 0.0 
    self.button3.alpha = 0.0 
    ... 
} 

回答

3
import UIKit 
class ViewController: UIViewController { 

    @IBOutlet weak var button1: UIButton! 
    @IBOutlet weak var button2: UIButton! 
    @IBOutlet weak var button3: UIButton! 
    var arrayOfButtons = [UIButton]() 


override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 
    arrayOfButtons = [button1, button2, button3] 
    for button in arrayOfButtons { 
     button.alpha = 0.0 
    } 
} 
+0

是否可以将变量添加到对象名称中。例如:button /(count).alpha = 0.0 –

+0

@codekid,我不认为你可以添加一个像这样的变量,一旦一个对象被创建。但如果你想调用一个特定的按钮,你可以创建一个字典'[String:UIButton]'而不是数组''“button1”:button1,“button2”:button2,“button3”:button3]'。然后调用'dictOfButtons [“button /(count)”]。alpha = 0.0'。 – Tim

1

除了Tim的回答,您还可以创建按钮编程,并在代码中对付他们!

override func viewDidLoad() { 
for i in 1...10 { 
    let button = UIButton() 
    button.frame = CGRectMake((CGFloat(i-1)*50), 0, 50, 50) 
    button.targetForAction("buttonClick:", withSender: self) 
    button.tag = i 
    self.view.addSubview(button) 
} 
} 


func buttonClick(sender:AnyObject) { 
    let tag = sender.tag! 
    //click logic here 
}