要獲取一個視圖(View)的所有控件,可以使用遞歸方式遍歷其子視圖。以下是一種實(shí)現(xiàn)方法:
func getAllSubviews(from view: UIView) -> [UIView] {
var subviews = [UIView]()
for subview in view.subviews {
// 添加當(dāng)前子視圖
subviews.append(subview)
// 如果當(dāng)前子視圖還有子視圖,則遞歸調(diào)用該方法
if subview.subviews.count > 0 {
subviews += getAllSubviews(from: subview)
}
}
return subviews
}
let allSubviews = getAllSubviews(from: yourView)
allSubviews
數(shù)組中包含了給定視圖下的所有控件,你可以根據(jù)需要進(jìn)行進(jìn)一步處理。請注意,這種方法會返回視圖層次結(jié)構(gòu)中的所有控件,包括子視圖的子視圖。如果你只想獲取一層深度的控件,請根據(jù)需要進(jìn)行修改。