回答
for(UIView *aView in yourView.subviews){
if([aView isKindOfClass:[YourClass class]]){
//YourClass found!!
}
}
例如,如果您正在查找類型爲UILabel類的對象,則會顯示如下。
for (UIView *subView in [weeklyViewA subviews]) {
if ([subView isKindOfClass:[UILabel class]]) {
NSLog(@"label class :: %@", [subView description]);
}
}
這是檢查的解決方案迅速版本:
爲UITextField例子:
for (_, view) in self.myView.subviews.enumerate(){
if view.isKindOfClass(UITextField){
//Here we go
}
}
。 isMemberOfClass:
比isKindOfClass:
更好,例如:
for (BadgeButton *button in self.subviews) {
if ([button isMemberOfClass:[BadgeButton class]]) {
button.selected = NO;
}
}
這不提供問題的答案。要批評或要求作者澄清,請在其帖子下方留言。 - [來自評論](/ review/low-quality-posts/16152363) –
@JonRose是的,我改進了我的答案。 –
斯威夫特答案
對於這種情況,我想我們可以用斯威夫特的first.where
語法,這比filter.count
,filter.isEmpty
更高效。
因爲當我們使用filter
時,它會創建一個底層數組,因此無效,想象我們有一個大集合。
所以只是檢查是否視圖的subViews
集合包含特定種類的類,我們可以利用這個
let containsBannerViewKind = view.subviews.first(where: { $0 is BannerView }) != nil
這相當於:找我的第一場比賽,以BannerView類此觀點的子視圖收藏。所以如果這是真的,我們可以執行我們的進一步邏輯。
參考:https://github.com/realm/SwiftLint/blob/master/Rules.md#first-where
- 1. 如何禁用包含所有子視圖的視圖的可訪問性?
- 2. 獲取子視圖包含視圖
- 3. 如何添加包含iAd橫幅視圖的子視圖?
- 4. 如何動畫包含子視圖的視圖
- 5. 如何刪除子視圖(或視圖的所有子視圖)
- 6. 如何獲取包含子視圖在內的所有視圖總數
- 7. xcode添加類/對象到子視圖
- 8. 如何定位相對於包含視圖大小的子視圖?
- 9. 如何在openerp視圖中包含類?
- 10. 如果主視圖包含子視圖,則將ViewModel屬性綁定到主視圖或子視圖?
- 11. 如何使用UI對象包含的視圖中鈦合金
- 12. 包含視圖內的其他視圖
- 13. 將對象從父視圖傳遞到MVVM中的子視圖
- 14. 如何渲染包含Core Animation圖層的視圖到位圖?
- 15. iOS動畫包含子視圖的視圖
- 16. 作爲包含uitableview的子視圖Uiview
- 17. 如何添加子視圖到視圖
- 18. 如何從父數組視圖顯示子對象視圖
- 19. 如何傳遞視圖對象以在子視圖中呈現?
- 20. 如何在包含視圖的視圖中繼承DataContext?
- 21. 如何在cakephp的另一個視圖中包含視圖
- 22. 如何找到所選控制段的子視圖?
- 23. 包含兩個Caliburn.Micro視圖的對話框視圖?
- 24. Android:滾動包含recyclerView的子視圖時如何滾動父視圖
- 25. Swift:在超視圖中查找視圖(不包含for循環)
- 26. 子視圖無法找到
- 27. 如何將子視圖添加到子視圖的滾動視圖
- 28. 添加子視圖到具有子視圖類功能的主視圖
- 29. Rails包含js到特定的視圖
- 30. 如何優化包含CATiledLayer圖層子視圖的UIView的繪圖
時,有幾個相同類型的意見,像在的UILabel子視圖這並沒有解決。嘗試在視圖上添加標籤,然後使用viewWithTag訪問子視圖。 – NOUX
答案是問的問題。 –