【问题标题】:Stop UIView being dragged around screen停止在屏幕上拖动 UIView
【发布时间】:2013-04-11 16:28:36
【问题描述】:

我们正在将第三方优惠墙集成到我们的 iOS phonegap 应用中。

当我们显示优惠墙时,它会被添加到标准 phonegap 视图控制器并显示在我们的 web 视图的顶部。

它的问题是人们可以将视图拖动到整个地方,而不是仅仅在原地上下滚动。效果如下图所示:

我们想要实现的是能够锚定此视图,使其不能在应用程序周围拖动,只能垂直滚动。

在集成代码中,我们可以访问优惠墙的 UIView 和主应用的 ViewController。

offerwall 是作为库提供的,因此我无法访问它的任何代码,只能处理返回的 UIView 和我将其添加到的 UIViewController。其他应用程序已经设法实现了无需水平滚动的视图

我们正在寻找适用于 UIView 或 ViewController 的代码来防止这种情况发生。

谢谢

【问题讨论】:

  • 优惠墙是什么样的视图?

标签: ios objective-c uiview uiviewcontroller phonegap-plugins


【解决方案1】:

offerwall 视图可能包含一个包含实际内容的UIScrollView。您可以尝试遍历所有子视图并在它找到的第一个滚动视图上关闭滚动:

    for (UIView *view in offerwall.subviews) {
        if ([view isKindOfClass:[UIScrollView class]]) {
            UIScrollView *scrollView = (UIScrollView*)view;

            scrollView.scrollEnabled = NO;
            return;
        }
    }

这绝对是 hacky,但如果您无法从他们的代码中访问任何其他内容,这可能是您唯一的选择。

【讨论】:

    【解决方案2】:

    最终解决方案非常简单。原来,offerwall 是一个 UIWebView,在测试模式下,offerwall 页面正在渲染一些溢出页面的元素,因此水平滚动。在生产模式下,问题就消失了

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-25
      • 2021-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多