在旋转时重绘UIWebView

时间:2012-10-24 22:53:58

标签: objective-c uiwebview

我已将UIWebView对象实现为自定义UIView(TSAlertView)。我的UIWebView位于UIView的中间,作为子视图。

当我旋转iOS设备屏幕时,UIWebView对象重新绘制在旧设备屏幕的顶部,而不删除旧的。旋转屏幕时,此自定义UIView的所有其他元素都将被销毁并重新绘制。

我想我一定错过了一些解除资源分配或从视图中删除UIWebView的过程。我尝试在UIWebView的声明中添加'autorelease',但无济于事。我想知道这是否是我在UIWebView创建方式上所做的简单疏忽的常见症状?

这似乎是一个简单的例子,它不告诉UIWebView对象它应该在每次旋转重绘之前自行销毁 - 但我不知道我怎么能这样做......

任何智慧都感激不尽。

1 个答案:

答案 0 :(得分:0)

理想情况下,旋转时不应再次创建视图。相反,您可以适当地重新安排代表中的框架。在您的情况下,您可能会再次创建UIWebView,应该避免这种情况。除此之外,您可以将其保留为类级别参数(在.h文件中声明)并在委托方法中调整框架以进行旋转。另请注意,release/autorelease不会从超级视图中删除您的视图。您需要调用removeFromSuperview方法来实现这一目标。

Check this for view resizing and layout handling