如何旋转 UIWebView 的内容?

Posted

技术标签:

【中文标题】如何旋转 UIWebView 的内容?【英文标题】:How do I rotate the contents of a UIWebView? 【发布时间】:2010-01-13 13:28:30 【问题描述】:

我使用 Web 视图制作了一个非常简单的 Web 浏览器应用程序。现在我需要获取应用程序,以便当 iPhone 旋转时,页面的文本也会旋转。

我该怎么做?

我对自动调整大小对话框感到非常困惑,所以我可能在那里做错了什么。

任何帮助将不胜感激!

【问题讨论】:

你能指定吗?您是否希望 WebView 的内容自动旋转,以便在用户转动手机时内容保持正面朝上?或者您是否希望内容随手机旋转,以便用户可以将内容翻转到侧面、上下颠倒等。我无法从您的问题中看出您的意思。 【参考方案1】:

我认为您应该旋转 UIWebView 小部件,而不是其内容。内容也应该旋转。要支持旋转,请将以下代码添加到您的视图控制器:

- (BOOL)shouldAutorotateToInterfaceOrientation:
    (UIInterfaceOrientation)interfaceOrientation  
        return YES;

旋转的小部件可能看起来与预期不同。在 Interface Builder 中调整支柱和弹簧。

【讨论】:

我已经做到了,文本保持纵向显示什么是支柱和弹簧?我真的无法理解界面生成器中的自动调整大小框 UIWebView 是 UIView 而不是 UIViewController 子类,并且不会发送 shouldAutorotate【参考方案2】:

我认为您需要给我们一些示例代码,以确定哪里出了问题。正如 Jacek 所说,您唯一需要做的就是支持 UIWebView 本身的自动旋转。内容应自动旋转。

【讨论】:

【参考方案3】:

我认为您对设备方向和视图框架感到困惑。

在大多数情况下,UIView 会随着方向的变化而变化。但要澄清一下 - 这不是因为方向变化,而是因为布局变化。

只有 UIViewControllers 需要考虑设备方向 - UIViews 不需要。当设备方向改变时,UIViewController 从它的实例方法中捕获事件:

– willRotateToInterfaceOrientation:duration:
– willAnimateRotationToInterfaceOrientation:duration:
– didRotateFromInterfaceOrientation:

UIViewController 然后重新布局视图 - 导致 UIViews 的重新框架。在许多情况下,ios 可以通过设置 UIViewAutoresizeMask 来帮助您简化重新布局过程。例如:

myWebview.autoresizeMask = UIVIewAutoresizeMaskFlexibleHeight | UIVIewAutoresizeMaskFlexibleHeight;

暗示当webview的superview改变它的边界时,webview也会随之改变。

总而言之,UIView 只处理它的框架/边界等。

【讨论】:

以上是关于如何旋转 UIWebView 的内容?的主要内容,如果未能解决你的问题,请参考以下文章

UIWebView 旋转内容

从后台获取加载 UIWebView

从 appdelegate swift 访问 UIwebview

UIWebView 旋转和背景颜色

将 UIWebView 上的 ScreenEdgePanGesture 传递给父 PageViewController

使用手势将图像从 UIWebView 保存到相机胶卷