如何旋转 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 的内容?的主要内容,如果未能解决你的问题,请参考以下文章
从 appdelegate swift 访问 UIwebview