要获取一个视图(View)的所有控件,可以使用递归方式遍历其子视图。以下是一种实现方法:
func getAllSubviews(from view: UIView) -> [UIView] {
var subviews = [UIView]()
for subview in view.subviews {
// 添加当前子视图
subviews.append(subview)
// 如果当前子视图还有子视图,则递归调用该方法
if subview.subviews.count > 0 {
subviews += getAllSubviews(from: subview)
}
}
return subviews
}
let allSubviews = getAllSubviews(from: yourView)
allSubviews
数组中包含了给定视图下的所有控件,你可以根据需要进行进一步处理。请注意,这种方法会返回视图层次结构中的所有控件,包括子视图的子视图。如果你只想获取一层深度的控件,请根据需要进行修改。