停止UIView被拖到屏幕上

comnis 发布于 2019-03-09 ios 最后更新 2019-03-09 14:38 3 浏览

我们正在将第三方报价墙整合到我们的iOS phonegap应用程序中。 当我们展示offerwall时,它会被添加到标准的phonegap viewcontroller并显示在我们的webview的顶部。 问题在于人们可以将视图拖到整个地方,而不是只是上下滚动。在下面的屏幕截图中显示效果。

View being dragged off screen 我们想要实现的是能够锚定这个视图,所以它不能被拖动到应用程序中,只能被垂直滚动。 在集成代码中,我们可以访问主要应用程序的offerwall和ViewController的UIView。 offerwall作为一个库提供,所以我没有访问它的任何代码,只能处理返回的UIView和我将它添加到的UIViewController。其他应用程序已经成功实现了视图,而无需水平滚动 我们正在寻找代码来应用于UIView或ViewController来防止这种情况。 谢谢
已邀请:

aad

赞同来自:

最后,解决方案非常简单。事实证明,offerwall是一个UIWebView,在测试模式下,offerwall页面呈现出一些溢出页面的元素,因此水平滚动。在生产模式中,问题就消失了

bea

赞同来自:

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

    for (UIView *view in offerwall.subviews) {
        if ([view isKindOfClass:[UIScrollView class]]) {
            UIScrollView *scrollView = (UIScrollView*)view;
scrollView.scrollEnabled = NO;
            return;
        }
    }
这绝对是hacky,但如果您无法访问其代码中的任何其他内容,则可能是您唯一的选择。