Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to remove a subview from a cell's content view?

I have added a UIWebview to the cell's content view

UIWebView *webview = [UIWebView alloc]init];
[cell.contentView addSubview:webview];

Now I intend to remove 'webview' from the cell's contentview.

Can I do the following?

Method 1:

[webview removeFromSuperview];

Or do I really need to loop through all the subviews of the contentview before removing it?

Method 2:

for (UIView *subview in [self.contentView subviews]) 
{
    if ([subview isKindOfClass:[UIWebView class]]) 
    {
        [subview removeFromSuperview];
    }
}

I tried method 1 and it didn't seem to work, am not sure if I am missing something or if method 2 is the only way to go

like image 250
Zhen Avatar asked Sep 07 '11 13:09

Zhen


2 Answers

Method 1 should work, but are you sure that the web view you're removing is really the same as the one you added? A simple way to remove a given subview from a view is to assign a tag:

//...
webView.tag = 123;
[cell.contentView addSubview:webView];
//...
[[cell.contentView viewWithTag:123] removeFromSuperview];

In practice it would of course be better to use a named constant as the tag.

like image 56
omz Avatar answered Nov 15 '22 18:11

omz


    //creating

// cell.bounds will fill up the cell with your webview
UIWebView *webview = [[UIWebView alloc]initWithFrame:cell.bounds];

webview.tag = 11;

[cell.contentView addSubview:webview];  

    //removing


[[cell.contentView viewWithTag:11] removeFromSuperview];
like image 32
Vijay-Apple-Dev.blogspot.com Avatar answered Nov 15 '22 19:11

Vijay-Apple-Dev.blogspot.com