Попробуйте это:
UIView *v = [self.containerView viewWithTag:[n integerValue]];
v.hidden = YES;
[self.containerView bringSubviewToFront:v];
[v removeFromSuperview];
Другая вещь, которую я только что заметил из класса UIView документа - см последнее предложение:
removeFromSuperview отсоединяет приемник от его надтаблицы и его окно и удаляет его из цепь ответчиков.
- (аннулируются) removeFromSuperview
Обсуждение Если SuperView приемника не ноль, этот метод освобождает приемник. Если вы планируете повторно использовать представление, обязательно сохраните его перед вызовом этого метода и не забудьте выпустить его по мере необходимости, когда вы закончите с ним, или после добавления его в другую иерархию представлений.
Никогда не вызывать этот метод во время отображения.
ОБНОВЛЕНИЕ: Сейчас 2014 год и удаление подсмотра, не скрывая его, отлично работает. код оригинального плаката должен работать как есть:
UIView *v = [self.containerView viewWithTag:[n integerValue]];
[v removeFromSuperview];
Это удалит V и любые мнения, он прилагается к нему в качестве подвидов, оставив позади containerView и любых братьев и сестер против.
** зловещий ** Никогда не вызывать этот метод во время отображения. – Irwin
не может быть проще, просто сделайте это, так как Blackberry говорит ** для (UIView * s в [view subviews]) [s removeFromSuperview]; ** – Fattie
Еще в '09, если вы удалили подзаголовок, прежде чем скрывать его, вы получили некоторые странные результаты. Или, по крайней мере, это то, что я видел, и это был оригинальный плакат. И раньше было это предупреждение в ссылке класса UIView, которая была заменена другой. Я бы сказал, что метод оригинального плаката для удаления subview, вероятно, теперь корректен и не нуждается в дополнительном коде. (он просто удаляет одно подобие) – mahboudz