2016-03-11 3 views
0

Существует ситуация, когда необходимо выбрать все пользовательские представления (не такие системные, как UILabel или UIButton и т. Д.), Например XXButton или XXView. Как я могу перебирать подпункты UIView для определения всех пользовательских представлений? Другими словами, как различать неизвестные пользовательские представления класса и представления системы Apple?выбрать персонализированные представления в иерархии UIView

+0

Откуда взялись эти пользовательские взгляды и зачем они вам нужны? опрос иерархии представлений, вероятно, не является правильным решением ... – Wain

+0

@ Простой пользовательский подход, возможно, из пакета сторонним или любым другим – musixlemon

+0

, тогда у вас есть проблема, потому что вы не знаете, как отличить Apple от Apple, от частного Apple , случайный сторонний участник и ваши собственные классы просмотра ... – Wain

ответ

0

Try После,

for viw in self.view.subviews 
{ 
if viw.classForCoder == yourCustomViewClass 
{ 
    // do your required operation 
} 
} 
  1. В описанном выше случае первом мы использовали для в цикле для итерации по всем подразделам вида конкретного вида.

  2. Затем мы проверили класс для представления из массива в подвид в

+0

поблагодарить за ответ, но на самом деле я не знал класса customView, или есть много пользовательских представлений в разных классах – musixlemon

+0

, используя этот блок, где вам нужно –

+0

просто замените пользовательское имя calss –

0

Когда вы создали XXButton или XXView, они в основном унаследованы от UIButton и UIView соответственно. Таким образом, вы должны явно проверять только свой пользовательский класс.

//Loop through all the views in your superview. 
for(UIView *anyView in self.view.subviews) { 

    if([anyView isKindOfClass:[XXButton class]]) { 

     // It's a XXButton. Need to cast it. 
     XXButton *btn = (XXButton *)anyView; 

    } else if([anyView isKindOfClass:[XXView class]]) { 

     // It's a XXView. Need to cast it. 
     XXView *view = (XXView *)anyView; 

    } 

    // You can multiple else if conditions for your custom UI classes. 
} 
Смежные вопросы