use*_*953 7 xcode subviews swift
在我的应用程序中,我正在向视图添加标签,然后我尝试在单击按钮时从视图中清除特定标签,并在尝试检索子视图时遇到错误:
class FirstViewController: UIViewController {
@IBAction func btnAddTask_Click(sender: UIButton){
var subViews = self.subviews.copy()
}
}
Run Code Online (Sandbox Code Playgroud)
我收到错误:
'FirstViewController'没有名为'subviews'的成员
如何获取当前视图的子视图?
Rob*_*ier 12
UIViewController没有subviews财产.它有一个view属性,有一个subviews属性:
for subview in self.view.subviews {
// Manipulate the view
}
Run Code Online (Sandbox Code Playgroud)
但通常这不是一个好主意.您应该将所需的标签放入IBOutletCollection并重复使用.否则,您与确切的子视图集(可能会发生变化)密切相关.
要创建IBOutletCollection,请在IB中选择所需的所有标签,然后将其拖动到源代码中.它应该询问您是否要创建一个集合数组.(请注意,此数组的顺序没有承诺.)
要查看视图中的所有子视图,您可以使用以下代码:
for subview in self.view.subviews {
// Use your subview as you want
}
Run Code Online (Sandbox Code Playgroud)
但是为了使用它,您必须确定您需要的视图.您可以使用特殊标识符标记任何元素,您创建的内容,如下所示:
myButton.restorationIdentifier = "mySpecialButton";
Run Code Online (Sandbox Code Playgroud)
之后你可以找到你的元素使用这个结构:
for view in view.subviews {
if (view.restorationIdentifier == "mySpecialButton") {
print("I FIND IT");
view.removeFromSuperview();
}
}
Run Code Online (Sandbox Code Playgroud)
:)
| 归档时间: |
|
| 查看次数: |
13630 次 |
| 最近记录: |