【问题标题】:Rotating UIWebView with transform, content partially off screen, how to get it to stick on screen?使用变换旋转 UIWebView,内容部分离开屏幕,如何让它粘在屏幕上?
【发布时间】:2010-02-11 23:00:06
【问题描述】:

我有一个 320x416 的纵向 UIWebView 填充 UIViewController 的视图。我还有一个 90 度旋转按钮,每次触摸按钮时都会将 UIWebView 转换 90 度。代码基本上是:

webView.transform = CGAffineTransformMakeRotation(touches%4 * M_PI/2.0);

旋转 90 度后,现在横向转换的 UIWebView 超出了屏幕的左右边缘。在应用转换的过程中,iPhone OS 将 UIWebView 的框架从 {{0,0}, {320,416}} 更改为 {{-48,48}, {416,320}}。没问题。

然后,我将 UIWebView 的框架原点调整为 (0,0),使其从左上角开始,但延伸到屏幕右边缘之外。现在,我可以触摸 UIWebView 并将其向左拉以查看右侧的隐藏信息,但我无法让右侧留在屏幕上——当我松开它时,右侧从屏幕弹回.

是什么导致视图在屏幕外反弹?换句话说,我需要调整什么以允许左边缘或右边缘粘在屏幕上并保持可见(显然,一次只有一个)?

谢谢。

【问题讨论】:

    标签: iphone uiwebview


    【解决方案1】:

    据我了解您在项目中所做的工作,您所看到的是 iPhoneOS 中任何滚动窗口的正常行为。也就是说,您的 UIWebView 足够宽,可以包含其中显示的所有 HTML 内容,因此当您拖动它时它会移动,当您放开它时它会弹回原来的位置。 UIWebView 比屏幕宽,因为您旋转了它,但没有调整它的大小,这意味着您无法看到它的所有 HTML 内容,但就 UIWebView 而言,它都是可见的所以它不能让你正确滚动它,它只是弹跳。

    【讨论】:

    • 感谢您的回复。暂时忽略手动旋转,我注意到如果我向左或向右重新定位 iPhone,iPhone OS(可能是因为调整了掩码)会将旧的 320 宽度拉伸到新的 480 宽度,然后按比例向下拉伸 UIWebView .而且,这是关键,如果我随后触摸 UIWebView 并将其向上拉,则其余部分会进入视图并且在我不触摸它时会保持在视图中。所以默认情况下,它正在做我想要的——我可以将 UIWebView 的任何部分操作到屏幕上并让它保持可见。我只是不知道它是怎么做到的。
    猜你喜欢
    • 2013-11-18
    • 1970-01-01
    • 2012-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多