iOS上拉边界下拉白色空白问题解决概述

yizhihongxing

表现

手指按住屏幕下拉,屏幕顶部会多出一块白色区域。手指按住屏幕上拉,底部多出一块白色区域。


产生原因

在 iOS 中,手指按住屏幕上下拖动,会触发 touchmove 事件。这个事件触发的对象是整个 webview 容器,容器自然会被拖动,剩下的部分会成空白。


解决方案

1. 监听事件禁止滑动

移动端触摸事件有三个,分别定义为

  1. touchstart :手指放在一个DOM元素上。

  2. touchmove :手指拖曳一个DOM元素。

  3. touchend :手指从一个DOM元素上移开。

显然我们需要控制的是 touchmove 事件,由此我在 W3C 文档中找到了这样一段话

Note that the rate at which the user agent sends touchmove events is implementation-defined, and may depend on hardware capabilities and other implementation details.(注意,用户代理发送touchmove事件的速率是实现定义的,并且可能取决于硬件功能和其他实现细节。)

If the preventDefault method is called on the first touchmove event of an active touch point, it should prevent any default action caused by any touchmove event associated with the same active touch point, such as scrolling.(如果在活动触摸点的第一个touchmove事件上调用preventDefault方法,它应该防止由与同一个活动触摸点关联的任何touchmove事件(如滚动)引起的任何默认操作。)

touchmove 事件的速度是可以实现定义的,取决于硬件性能和其他实现细节

preventDefault 方法,阻止同一触点上所有默认行为,比如滚动。


由此我们找到解决方案,通过监听 touchmove,让需要滑动的地方滑动,不需要滑动的地方禁止滑动。

值得注意的是我们要过滤掉具有滚动容器的元素。

实现如下:

document.body.addEventListener('touchmove', function(e) {
  if (e._isScroller) return;
  // 阻止默认事件
  e.preventDefault();
}, {
  passive: false
});

2. 滚动妥协填充空白,装饰成其他功能

在很多时候,我们可以不去解决这个问题,换一直思路。

根据场景,我们可以将下拉作为一个功能性的操作

原文链接:https://www.cnblogs.com/mysweetAngleBaby/p/16848330.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:iOS上拉边界下拉白色空白问题解决概述 - Python技术站

(0)
上一篇 2023年4月17日
下一篇 2023年4月17日

相关文章

  • iOS-Coretext 图文混排占位符上下偏移处理

    这里说的占位符,实际就是排版时需要展示的图片,图片基于占位符填充,那么处理图片时,怎么解决占位符(图片)的上下偏移在设置占位符属性时,我通过以下方法来实现它: + (NSAttributedString *)wxImageAttributeCoreTextFromPaperQuestion:(WXTKCoretextQSourceImg *)image{ C…

    IOS 2023年4月17日
    00
  • Uniapp进行APP打包——iOS 系统

    一、打包过程 1、创建唯一标识符 首先,申请苹果开发者账号。 没有苹果开发者账号是无法进行 ios 打包上线的。 (2) 进入 https://developer.apple.com 这个网址,点击“account” 并输入苹果开发者账号进入用户界面。 ​   (3) 点击证书文件 ​   (4) 进入到这界面以后, 点击“APP IDs”,并新建一个 AP…

    IOS 2023年4月18日
    00
  • 2022超详细流程ios APP最新打包上线教程,保证一看就会!

    这篇文章主要是想要给大家讲述一下APP打包上线到APP Store的详细流程。作为一名开发人员,上架APP是必须要会的,否则出去都不好意思说自己是iOS程序员。而且上线过APP的小伙伴肯定都知道,iOSAPP上线相比安卓的APP上线要复杂麻烦很多,一不小心就会掉进坑里。所以下面我将会带着大家一步一步的学习如何打包上线一个APP和那些年我们遇到的坑。 好了,下…

    IOS 2023年4月18日
    00
  • Apple Xcode 14 (14A309) 正式版发布 (含下载)

    Command Line Tools for Xcode 14tvOS 16 Simulator RuntimewatchOS 9 Simulator Runtime 请访问原文链接:https://sysin.org/blog/apple-xcode-14/,查看最新版。原创作品,转载请保留出处。 作者主页:www.sysin.org Xcode 14 包…

    IOS 2023年4月18日
    00
  • 2023年2月苹果最新屏蔽系统更新描述文件

    有相当一部分 iPhone 用户会拒绝iOS更新最新系统,不管是因为各种BUG还是因为其他优化方面的问题,他们都会选择一个自己觉得均衡的系统版本,安逸养老。 但是苹果 iOS 系统如果你不及时更新推送版本的话,就会在手机桌面「设置」上方出现角标数字红点,系统设置中也会出现红点提示。强迫症患者表示简直受不了,那么有没有什么办法能解决呢?   屏蔽系统更新 以前…

    IOS 2023年4月17日
    00
  • 本文相关主要记录一下使用Hbuilder打包成苹果IOS-App的详细步骤。

    ​介绍一下个人开发者账号: 再说下什么是免费的苹果开发者账号,就是你没交688年费的就是免费账号,如果你想变成付费开发者账号,提交申请付费就行,账号都是一样的账号。 没有账号的点击链接申请: 苹果开发者账号申请 登录开发者中心developer.apple.com/account这个界面就是免费开发者账号 ​ 苹果免费开发者账号的功能限制 1、证书描述文件有…

    IOS 2023年4月18日
    00
  • HBuilder包装iOS APP上App Store的详细过程

    以前看过很多教程,然后。ITUNE管理APP功能被删除,IPA安装失败。Appuploader已有1个月的期限等问题。 请参见此教程重新安装。因此,放出。 很多新生开发,不知道如何包装。ios APP安装在自己的手机测试,ios不像安卓包装好后可以直接安装到手机上,苹果APP如果需要安装在非逃避的苹果手机。需要自己申请i特定OS证书包装才能安装。   在开发…

    IOS 2023年4月18日
    00
  • uniapp ios app离线打包

    前言 进行UniApp 离线打包之前, 建议先认真阅读一遍官方的开发文档。真正阅读过了,可以少踩很多坑。本文介绍离线打包前的准备及iOS工程的一些配置和需要注意的事项。 官方文档:App离线打包iOS插件开发教程iOS原生工程配置 首先,需要去UniApp官网创建一个开发者账号注册开发者登录开发者中心 账号创建成功后就可以去开发者中心创建应用了。 App的创…

    IOS 2023年4月18日
    00
合作推广
合作推广
分享本页
返回顶部