使用循环到几个子视图(swift4)
use loop to several subviews (swift4)
我下面的代码声明了变量,然后将它们添加到视图子视图中,同时声明了约束。我想看看我是否可以将这段代码写得更短。使用 view.addSubview(imageA)and imageA.translatesAutoresizingMaskIntoConstraints = false 我想看看是否有我可以添加所有的变量所以它像 imageA, text,textBackward.addSubview(theName)
var imageA = UIImageView()
var text = UILabel()
var theName = UILabel()
var textForward = UIButton()
var textBackward = UIButton()
var map = UIButton()
var settings = UIButton()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
view.addSubview(imageA)
view.addSubview(text)
view.addSubview(theName)
view.addSubview(textForward)
view.addSubview(textBackward)
view.addSubview(map)
view.addSubview(settings)
imageA.translatesAutoresizingMaskIntoConstraints = false
text.translatesAutoresizingMaskIntoConstraints = false
textBackward.translatesAutoresizingMaskIntoConstraints = false
settings.translatesAutoresizingMaskIntoConstraints = false
theName.translatesAutoresizingMaskIntoConstraints = false
map.translatesAutoresizingMaskIntoConstraints = false
textForward.translatesAutoresizingMaskIntoConstraints = false
}
您可以将所有子视图添加到一个数组中并像这样迭代
[imageA,text,theName,textForward,textBackward,map,settings].forEach({
[=10=].translatesAutoresizingMaskIntoConstraints = false
self.view.addSubview([=10=])
})
对我来说,我喜欢将所有属性放入一个数组,并使用每个闭包来设置在闭包内调用相同的函数。
var imageA = UIImageView()
var text = UILabel()
var theName = UILabel()
var textForward = UIButton()
var textBackward = UIButton()
var map = UIButton()
var settings = UIButton()
lazy var collection = [imageA, text, theName, textForward, textBackward, map, settings]
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
collection.forEach { (view) in
self.view.addSubview(view)
view.translatesAutoresizingMaskIntoConstraints = false
}
}
如果有人使用故事板和出口也可以添加出口集合和 link 您想要的所有视图。
outlet collection
我下面的代码声明了变量,然后将它们添加到视图子视图中,同时声明了约束。我想看看我是否可以将这段代码写得更短。使用 view.addSubview(imageA)and imageA.translatesAutoresizingMaskIntoConstraints = false 我想看看是否有我可以添加所有的变量所以它像 imageA, text,textBackward.addSubview(theName)
var imageA = UIImageView()
var text = UILabel()
var theName = UILabel()
var textForward = UIButton()
var textBackward = UIButton()
var map = UIButton()
var settings = UIButton()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
view.addSubview(imageA)
view.addSubview(text)
view.addSubview(theName)
view.addSubview(textForward)
view.addSubview(textBackward)
view.addSubview(map)
view.addSubview(settings)
imageA.translatesAutoresizingMaskIntoConstraints = false
text.translatesAutoresizingMaskIntoConstraints = false
textBackward.translatesAutoresizingMaskIntoConstraints = false
settings.translatesAutoresizingMaskIntoConstraints = false
theName.translatesAutoresizingMaskIntoConstraints = false
map.translatesAutoresizingMaskIntoConstraints = false
textForward.translatesAutoresizingMaskIntoConstraints = false
}
您可以将所有子视图添加到一个数组中并像这样迭代
[imageA,text,theName,textForward,textBackward,map,settings].forEach({
[=10=].translatesAutoresizingMaskIntoConstraints = false
self.view.addSubview([=10=])
})
对我来说,我喜欢将所有属性放入一个数组,并使用每个闭包来设置在闭包内调用相同的函数。
var imageA = UIImageView()
var text = UILabel()
var theName = UILabel()
var textForward = UIButton()
var textBackward = UIButton()
var map = UIButton()
var settings = UIButton()
lazy var collection = [imageA, text, theName, textForward, textBackward, map, settings]
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
collection.forEach { (view) in
self.view.addSubview(view)
view.translatesAutoresizingMaskIntoConstraints = false
}
}
如果有人使用故事板和出口也可以添加出口集合和 link 您想要的所有视图。 outlet collection