2017-10-14 57 views
-1

我已经有这个问题一段时间了,出于某种原因,我似乎无法找到答案。如果我想用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) 

回答

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:,标签2:文本:)

你可以写你的函数类似这样的

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了解更多关于此的内容。

0

至于我,使它最简单的方法,就是用标签,所以你可以为每个标签设置标签(如1001,1002,1003 ......)和搜索之后发现确切的标签通过标签的子视图:

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

也许有更好的办法,不知道

+0

'UIView'有'viewWithTag'方法 – vadian

+0

@vadian谢谢,我编辑了我的答案,完全忘了它 – Woof