使用具有不同变量的函数

时间:2017-10-14 16:04:20

标签: swift function

我已经有这个问题了一段时间了,由于某些原因我似乎无法找到答案。如果我想制作一个包含10个UIlabels的应用程序(使用编程),我宁愿创建一个函数,所以我可以说:createLabel(size: , position: , textColor: , text: )我的麻烦是,我不知道如何创建一个不同的名称这些中的每一个,如果我想更改每个文本,我可以单独引用它们。下面是我想要在函数内部的所有参数。另外,我如何创建一个可以更改多个标签文本的函数,例如changeText(label1: , label2: , text: )谢谢!

var output = UILabel()
    output = UILabel(frame: CGRect(x: 0, y: 0, width: screenSize.width, height: 100))
    output.center = CGPoint(x: screenSize.width/2, y: self.size.height * 0.08)
    output.textAlignment = .right
    output.textColor = UIColor.white
    output.font = UIFont(name: "Helvetica-Light", size: 15.0)
    output.numberOfLines = 0;
    output.text = "12345"
    output.font = output.font.withSize(80)
    self.view?.addSubview(output)

2 个答案:

答案 0 :(得分:0)

至于我,最简单的方法是使用标签,这样你就可以为每个标签设置一个标签(如1001,1002,1003 ......),并在子视图中搜索后找到确切的标签。标记:

if let view = self.view?.viewWithTag(put the tag here) as? UILabel {
    //set any parameters here
}

也许有更好的方法,不确定

答案 1 :(得分:0)

  

我如何为每一个创建一个不同的名称,所以稍后如果我想更改每个文本,我可以单独引用它们

要实现这一点,您可以将它们保存在字典中。

// Create data structure for labels
var labels = [String: UILabel]()

// Add label with unique name
labels["uniqueName"] = createLabel(size: , position: , textColor: , text: )

// Access label with uniqueName
let label = labels["uniqueName"]
  

如何创建一个可以更改多个标签文本的函数,例如changeText(label1:,label2:,text :)

你可以像这样编写你的函数

func changeText(text: String, labels: UILabel...) {
    for label in labels {
        label.text = text
    }
}

请在此处查看有关可变参数的部分:https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Functions.html以了解有关此内容的更多信息。