2012-02-10 2 views
0

, когда выполняется следующее событие, я инициализирую и вызываю UIImageView. Позже я удалю этот вид. Мой код выглядит следующим образом.Как удалить UIView, который я добавил

self.myView = [[UIImageView alloc] initWithFrame:CGRectMake(10, 10, 320, 460)]; 
[myView setBackgroundColor:[UIColor whiteColor]]; 
self.myView.backgroundColor = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"someImage.png"]]; 

[self.tableView addSubview:self.myView]; 

В более позднем экземпляре я удалю представление, и мой код для удаления выглядит следующим образом;

[self.tableView bringSubviewToFront:self.myView]; 
[self.myView setHidden:YES]; 
[self.myView removeFromSuperview]; 

Проблема, которая возникает у меня, заключается в том, что представление, которое я добавил в tableview, не удаляется. Мне нужно знать, почему это происходит, и программное решение для его решения.

примечание: я отлаживал, и часть кода удаления выполняется, но ничего не удаляется. Помощь

+0

У вас все еще есть проблема, если вы не задали скрытый = ДА? – bryanmac

+0

Да, я ничего не меняю – sharon

+0

Добавили ли вы несколько экземпляров своего UIView к таблице? После того, как вы удалите его, распечатайте подпункты в виде таблицы, чтобы увидеть, как выглядят дети. – colbadhombre

ответ

0

вы должны попробовать только [self.myView removeFromSuperview];

+0

Почему? Чем это будет отличаться от того, что у нее есть? – colbadhombre

0

общая проблема, которая может вызвать поведение, как это изменение UIKit объектов (как UIView) из фонового потока. UIKit обычно не является потокобезопасным, и вызовы из фоновых потоков часто не изменяют видимое состояние вашего приложения в течение длительного времени, если вообще.

Каков метод, который выполняет ваш второй блок кода и как он вызван?

FWIW, bringSubviewToFront: и setHidden: не должно быть необходимости; removeFromSuperview должно быть всем, что требуется для удаления вашего вида.

0

Было интересно, есть ли другой контроллер поверх вашего стола, как навигационный контроллер. Удалил быFromSuperview на самом деле ссылаться на него, давая нежелательный результат?

Смежные вопросы