2013-10-02 4 views
2

Как удалить все кнопки из представления с помощью iOS 7?Как удалить все кнопки из представления в iOS 7?

Вот код, который работает в более ранних версиях прошивки:

   for(UIView *view in cell.subviews){ 
        if([view isMemberOfClass:[UIButton class]]){ 
         [(UIButton *)view removeFromSuperview]; 
        } 
       } 
+0

Я предполагаю, что вы не используете xib/раскадровку, чтобы не создавать точки выхода на кнопки и скрывать их таким образом? – Lewis42

+0

Вы попробовали 'isKindOfClass'? –

+0

Да, я пытался isMemberOfClass также isKindOfClass также – GVA

ответ

2

Извините за поздний ответ. Фактически эта часть кода будет работать до iOS 6.0, но в iOS 7.0 и далее код не работает.

Так что, наконец, я нашел решение, чтобы удалить все под просмотр из UIScrollview со следующим утверждением.

[scrollView.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)]. 
4

Похоже, вы просто не делаете петлю через подвиды. Если предположить, что это контроллер вид:

NSArray * allSubviews = [self.view subviews]; 
for(UIView view in allSubviews) 
{ 
    if([view isMemberOfClass:[UIButton class]]) 
    {          
     [view removeFromSuperview];         
    } 
} 

Вам также не нужно отбрасывать «view» к «UIButton *» здесь потому, что базовый класс «UIView» является то, что реализует «removeFromSuperview».

+0

с точки зрения сетки ячейки я хочу удалить все кнопки ... Просто увидеть, что код, что я сделал здесь .. для (UIView * зрения в cell.subviews) { если ([ view isKindOfClass: [UIButton class]]) { [(UIButton *) view removeFromSuperview]; NSLog (@ "удалено"); } } его не входит внутри isKindOfClass или isMemberOfClass также – GVA

+0

может случиться так, что у вас нет кнопок в вашем представлении соты, а вместо этого оно происходит откуда-то еще (например, внутри ячейки * что-то еще??) –

+0

[ Читайте здесь] (http://stackoverflow.com/a/3829898/818506), что вы должны использовать 'isKindOfClass' вместо' isMemberOfClass'. Какая разница, если кто-то использует 'isMemberOfClass'? Прокомментируйте пожалуйста. –

6

Прежде всего, необходимо, чтобы все подвиды из поля зрения, а затем проверить все вид является типом UIButton.For подробнее см это ...

for (UIView *view in self.view.subviews) 
    { 
     if ([view isMemberOfClass:[UIButton class]]) 
     { 
      [(UIButton *)view removeFromSuperview]; 
     } 
    } 
+0

Привет, благодарю вас за Dharmbir за ваш быстрый ответ, в том же коде, который я только сделал. Если свойство является кнопкой, значит, он не входит в isMemberOfClass ... Но его рабочее обаяние, как и ниже, проблемы с ios 7.Tje в ios7 .. У тебя есть идея? – GVA

+0

его работая на моем конце в ios7 и что вы подразумеваете под кнопкой свойства. А во-вторых, вы можете использовать isKindOfClass вместо метода isMemberOfClass. –

+0

Я сожалею этот код тоже не работает ... просто найти свой код ниже для (UIView * зрения в cell.subviews) { если ([смотреть isKindOfClass: [UIButton класс]]) { [(UIButton *) view removeFromSuperview]; NSLog (@ "удалено"); } } – GVA

0

Try, это будет работать

for(UIView *view in self.view.subviews) 
{ 
    if ([view isKindOfClass:[UIButton class]]) 
    { 
     [view removeFromSuperview]; 
    } 
} 
Смежные вопросы