要獲取一個視圖(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
數組中包含了給定視圖下的所有控件,你可以根據需要進行進一步處理。請注意,這種方法會返回視圖層次結構中的所有控件,包括子視圖的子視圖。如果你只想獲取一層深度的控件,請根據需要進行修改。