Как удалить подпредставления в Objective C?

Я добавил UIButton и UITextView как подпредставления к моему представлению программно.

notesDescriptionView = [[UIView alloc]initWithFrame:CGRectMake(0,0,320,460)];
notesDescriptionView.backgroundColor = [UIColor redColor];
[self.view addSubview:notesDescriptionView];

textView = [[UITextView alloc] initWithFrame:CGRectMake(0,0,320,420)]; 
[self.view addSubview:textView]; 
printf("\n description  button \n");

button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button
  addTarget:self action:@selector(cancel:)
  forControlEvents:UIControlEventTouchDown];
[button setTitle:@"OK" forState:UIControlStateNormal];
button.frame = CGRectMake(80.0, 420.0, 160.0, 40.0);
[self.view addSubview:button];

Я должен удалить все подпредставления, когда кнопка нажата.

Я попробовал:

[self.view removeFromSuperView]

но это не работает.

26
задан Cœur 12 November 2018 в 04:33
поделиться

2 ответа

Я предполагаю, что вы вызываете [self.view removeFromSuperView] из метода в том же классе, что и в приведенном выше фрагменте.

В таком случае [self.view removeFromSuperView] удаляет self.view из его собственного супервида, но self - это объект, из представления которого вы хотите удалить подвиды. Если вы хотите удалить все подпросмотры объекта, вам нужно сделать следующее:

[notesDescriptionView removeFromSuperview];
[button.view removeFromSuperview];
[textView removeFromSuperview];

Возможно, вы захотите хранить эти подпросмотры в NSArray и перебирать этот массив, вызывая removeFromSuperview для каждого элемента в этом массиве.

23
ответ дан 28 November 2019 в 06:10
поделиться

, чтобы удалить все вложенные представления, которые вы добавили в представление

, используйте следующий код

for (UIView *view in [self.view subviews]) 
{
    [view removeFromSuperview];
}
59
ответ дан 28 November 2019 в 06:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: