Alex Rivera | Logout

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

Asked 2011-09-07T13:37:46.510
10

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

Edit
Report

2 Answers

6

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.

answered 2011-09-07T13:42:05.823
1

I believe that your webview is nil when actually trying it to remove from the superview. Have you tried reloading table data after removing it from the content view? In which methods are you doing view manipulation? Datasource/delegate or custom IBActions?

answered 2011-09-07T13:40:09.223

Your Answer