Я добавил 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]
но это не работает.
Я предполагаю, что вы вызываете [self.view removeFromSuperView]
из метода в том же классе, что и в приведенном выше фрагменте.
В таком случае [self.view removeFromSuperView]
удаляет self.view из его собственного супервида, но self - это объект, из представления которого вы хотите удалить подвиды. Если вы хотите удалить все подпросмотры объекта, вам нужно сделать следующее:
[notesDescriptionView removeFromSuperview];
[button.view removeFromSuperview];
[textView removeFromSuperview];
Возможно, вы захотите хранить эти подпросмотры в NSArray
и перебирать этот массив, вызывая removeFromSuperview
для каждого элемента в этом массиве.
, чтобы удалить все вложенные представления, которые вы добавили в представление
, используйте следующий код
for (UIView *view in [self.view subviews])
{
[view removeFromSuperview];
}