【问题标题】:UIButton UIWebView errorUIButton UIWebView 错误
【发布时间】:2012-10-24 15:30:35
【问题描述】:

在 UIWebView didFailWithError 下,我创建了一个 UIButton 并将其添加到视图中:

 UIButton *refreshButton = [UIButton buttonWithType:UIButtonTypeCustom];
 ...
 ....
 [self.imageView addSubview:refreshButton];

当按钮被点击时,我请求 webView 重新加载给定的 URL。

didFailWithError 方法完成后 UIButton 会发生什么,它会自动释放吗?

如果在重新加载后再次捕获了 didFailWithError,那么我是否应该说 UIButton 必须从头开始重新创建。

另外,我将如何从 webViewDidFinishLoad 中的视图中删除 UIButton

[refreshButton removefromsuperview]

谢谢

【问题讨论】:

    标签: objective-c uiwebview uibutton


    【解决方案1】:

    这个 didFailWithError 方法完成后 UIButton 会发生什么,它会自动释放吗?

    如果您不删除按钮或按钮的超级视图,按钮将保留在那里...

    如果重新加载再次失败,那么我是否应该说 UIButton 必须从头开始重新创建。

    实际上,只有当您的 self.imageView 被卸载或您明确删除它或按钮时,这才是必要的......

    另外,我将如何从 webViewDidFinishLoad 中的视图中删除 UIButton

            [refreshButton removefromsuperview]
    

    这是正确的,但您应该将refreshButton 定义为您的类中的一个属性(否则它将是didFailWithError 中的一个局部变量,您无法从其他方法中引用它)。

    可能,由于按钮会触发重新加载,您还想在webViewDidStartLoad: 中将其删除。

    【讨论】:

    • 按钮确实会在您的代码中重新创建,因为每次输入didFailWithError 时都会创建一个新按钮。这是正确的,但您也必须删除它才能使事情正常运行并且不会出现内存泄漏。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多