在我的应用程序中,我正在向视图添加标签,然后我尝试在单击按钮时从视图中清除特定标签,并在尝试检索子视图时遇到错误:
class FirstViewController: UIViewController { @IBAction func btnAddTask_Click(sender: UIButton){ var subViews = self.subviews.copy() } }
我收到错误:
‘FirstViewController’没有名为’subviews’的成员
如何获取当前视图的子视图?
解决方法
UIViewController没有子视图属性.它有一个view属性,它有一个subviews属性:
for subview in self.view.subviews { // Manipulate the view }
但通常这不是一个好主意.您应该将所需的标签放入IBOutletCollection并迭代它.否则,您与确切的子视图集(可能会发生变化)密切相关.
要创建IBOutletCollection,请在IB中选择所需的所有标签,然后将其控制拖动到源代码中.它应该询问您是否要创建一个集合数组. (请注意,此数组的顺序没有承诺.)