Ran*_*rns 2 arrays immutability ios swift
我以前能够通过将多个视图(UIImageViews、UILabels 和 UIButtons)添加到一个数组,然后遍历该数组以进行如下属性更改来清理我的代码:
var hideViews = [imageView1, imageView2, label1, button1, button2]
for eachView in hideViews {
eachView.isHidden = true
}
Run Code Online (Sandbox Code Playgroud)
然后变成了另一个版本的 Swift:
var hideViews = [imageView1, imageView2, label1, button1, button2] as [Any]
for eachView in hideViews {
(eachView as AnyObject).isHidden = true
}
Run Code Online (Sandbox Code Playgroud)
我还可以使用它一次移动多个视图:
for view in viewsToMove {
(view as AnyObject).frame = CGRect(x: view.frame.origin.x - 30, y: view.frame.origin.y, width: view.frame.width, height: view.frame.height)
}
Run Code Online (Sandbox Code Playgroud)
我现在收到错误:
无法分配给类型为“Bool!”的不可变表达式
无法分配给类型为“CGRect!”的不可变表达式
有人知道我在这里缺少什么,以便在 Swift 3 中做到这一点吗?
谢谢!
给定一个数组 UIView
let hideViews: [UIView] = ...
Run Code Online (Sandbox Code Playgroud)
您可以隐藏每个视图
hideViews.forEach { $0.isHidden = true }
Run Code Online (Sandbox Code Playgroud)
将每个视图向左移动30 个点
hideViews.forEach { $0.frame.origin.x -= 30 }
Run Code Online (Sandbox Code Playgroud)
或两者兼而有之
hideViews.forEach {
$0.isHidden = true
$0.frame.origin.x -= 30
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2480 次 |
| 最近记录: |