IOS: удалить imageView - PullRequest
       2

IOS: удалить imageView

0 голосов
/ 22 ноября 2011

У меня есть этот код:

for(Contact *contact in myArray){
        if(...){
            UIImageView *fix = [[UIImageView alloc] initWithImage:myImage];
            [self.view addSubview:fix];
            [fix setFrame:[contact square]];
            return;
        }
    }

в этом коде я добавляю imageView к self.view, но в моем приложении я называю это «для» много раз, и, наконец, у меня есть self.view с 4 или 5 imageView «fix». Какой способ удалить все эти imageView из моего self.view?

Ответы [ 3 ]

3 голосов
/ 22 ноября 2011

Если вы хотите удалить только экземпляры UIImageView, вы можете попробовать что-то вроде этого:

for (UIView *v in self.view.subviews) {
    if ([v isKindOfClass:[UIImageView class]]) {
        [v removeFromSuperview];
    }
}

Обновление:

Как писал vikingosegundo в комментариях, вы можете сделать это на самом деле.

Если вы добавите каждое изображение в массив, вы можете позже удалить его из представления следующим образом:

NSMutableArray *images = [[NSMutableArray alloc] init];

for Contact *contact in myArray){
    if(...){
        UIImageView *fix = [[UIImageView alloc] initWithImage:myImage];
        [self.view addSubview:fix];
        [fix setFrame:[contact square]];
        [images addObject:fix]; // Add the image to the array.
        return;
    }
}

Позже удалите их из вида:

for (UIImageView *v in images) {
    [v removeFromSuperview];
}
1 голос
/ 22 ноября 2011
NSMutableArray *images = [NSMutableArray array];

for Contact *contact in myArray){
    if(...){
        UIImageView *fix = [[UIImageView alloc] initWithImage:myImage];
        [self.view addSubview:fix];
        [fix setFrame:[contact square]];
        [images  addObject:fix];
    }
}


for (UIView *v in images){
    [v removeFromSuperview];
}

Другой подход

for(UIView *v in self.view.subviews)
    if([v isKindOfClass:[UIImageView class]])
        [v removeFromSuperview];

Я поставил пример .

1 голос
/ 22 ноября 2011

Просто вызовите removeFromSuperview для каждого подпредставления. Что-то вроде:

for(UIView *subview in self.view.subviews)
    [subview removeFromSuperview];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...