【问题标题】:Determine if an instance of a subview with specific name exists确定是否存在具有特定名称的子视图的实例
【发布时间】:2011-03-14 23:45:29
【问题描述】:

确定具有特定名称的子视图实例是否存在的最佳方法是什么?我有一个带有 webview 的应用程序,它以子视图的形式添加自定义活动指示器,使用 webview 委托方法 webviewDidStartLoad 和 webviewDidFinishLoad 来添加和删除子视图。我认为这工作正常,但我注意到有些情况下 webviewDidStartLoad 和 webviewDidFinishLoad 不一定成对触发。例如,如果我开始加载 webview,然后将应用程序发送到后台(在 webview 完成加载之前),然后将其带回前台,我将最终导致活动指示器子视图永远不会被删除(因为当我发送应用程序进入后台 webviewDidFinishLoad 永远不会被调用,因此当应用程序返回前台时,webviewDidStartLoad 在旧实例之上添加另一个视图实例。本质上,该子视图被添加两次,只被删除一次。

所以我想要做的只是添加子视图,如果它不存在并且只在它确实存在时删除它。那么确定子视图是否已经存在或正在显示的最佳方法是什么?谢谢!

【问题讨论】:

    标签: iphone sdk uiwebview subview


    【解决方案1】:

    您应该在您拥有 webview 委托方法的类的属性中跟踪子视图。如果该属性为nil,则没有子视图,您应该设置它。删除时,将属性设置为 nil。

    和/或实例化一次,然后添加/删除视图,而无需一次又一次地解除分配和分配。

    【讨论】:

      【解决方案2】:

      每个视图都有一个属性“标签”,它是一个整数,您可以使用它来识别应用程序中的视图对象。有一个方法“viewWithTag”,它返回标签与指定值匹配的视图。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-09-19
        • 1970-01-01
        • 2010-12-27
        • 2023-03-09
        • 1970-01-01
        • 2023-03-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多