奥特莱斯系列

Outlet Collections

我有几个 textField 插座集合。我想遍历每个集合并为每个文本字段添加一个边框。我一次可以成功地完成这个系列。但是,我不想为每个集合单独调用边框函数。

我有以下 outletCollections

@IBOutlet var nameCollection: [UITextField]!
@IBOutlet var phoneCollection: [UITextField]!

这适用于每个集合

for name in nameCollection { 
    someFunction...
    }

我正在尝试做这样的事情。

let collections = [nameCollection, phoneCollection]

for name in collections {
    someFunction...
    }

基本上我想提供一个集合列表并在每个集合的每个成员上执行该函数。

只需组合您的奥特莱斯系列:

let combinedCollection = nameCollection + phoneCollection

例如:

extension UITextField
{
    func doSomething()
    {

    }
}

class ViewController: UIViewController {

    @IBOutlet var nameCollection: [UITextField]!
    @IBOutlet var phoneCollection: [UITextField]!

    override func viewDidLoad() {
        super.viewDidLoad()

        let combinedCollection = nameCollection + phoneCollection
        for eachField in combinedCollection
        {
            eachField.doSomething()
        }
    }
}

此示例假定每个集合都具有相同类型的对象。