documentElementFromPoint
根据坐标获得元素,可用于触屏设备上获取当前点击元素的名称
语法:
oElement = document elementFromPoint ( X , Y )
参数:
X : 必选项。整数(Integer)。单位:象素(Pixel)。定位横坐标偏移量。
Y : 必选项。整数(Integer)。单位:象素(Pixel)。定位纵坐标偏移量。
返回值:
Element : 对象(Element)。返回获取的对象的引用。
例子:
21是吧,a[0][0]是指这个二维数组的第一个元素,加&就是去这个元素的地址或者说数组的首地址,i是0就不说了,j-2=3,也就是首地址加上3个偏移就是a[0][3],就是21了
一、什麽是数组偏移量:数组在内存是一组连续的地址,比如,你声明了个数组,int a[5],这里有5个数组元素,第一个元素的下标为0,依此类推:1,2,3,4偏移量就是指相对于数组第一个元素的偏移值比如,偏移量为2,那么此时应
在线搜索“SwiftUI ScrollView offset”会得到很多关于如何控制 ScrollView 滚动位置的讨论:随着iOS 14的发布,SwiftUI新增了 ScrollViewReader
这是否意味着我们不再需要 ScrollView 偏移量offset
在本文中,我们将探讨如何获得 offset 偏移量以及它的一些用途
类似 UIScrollView , ScrollView 由两个 layer 组成:
如果我们查看一个垂直滚动视图(本文将使用这个视图),则偏移量表示 frame layer 层的y坐标的最小值与 content layer 内容层的y坐标的最小值之间的差值。
SwiftUI的 ScrollView 初始化方法:
除了 content 视图构建器之外,我们没有什么可以使用的
让我们创建一个简单的 ScrollView 的例子,用一些 Text 文本填充:
偏移量将与内容中第一个元素 Text("A") 的偏移量相同,我们如何得到这个元素的偏移量
再一次,我们需要用到SwiftUI的 GeometryReader ,以及一个新的 PreferenceKey 。
首先,让我们定义preference key:
其次,我们为视图的 background 修饰器添加 GeometryReader :
geometry reader就像我们在 SwiftUI:GeometryReader 中看到的一样,是用来分享视图层次结构中元素的信息:我们使用它来提取视图的y坐标的最小值,计算出偏移量。
然而它并不能正常执行:
我们正在为局部坐标空间中的框架查询 GeometryProxy ,该空间是我们的 background 背景视图中建议的空间。
简而言之,就是 Colorclear 的 minY 在 local 局部坐标一直是0
修改为 global 全局坐标,从设备屏幕的坐标系来看是有问题的, Scrollview 可以放在视图层次结构的任何地方, global 全局坐标系并没有什么帮助。
如果我们把 GeometryReader 放在 Text("A") 上面会发生什么
这可能看起来更有希望,但它仍然不会工作:
在这种情况下, local 的坐标系是 ScrollView 的 content layer ,但是我们需要把它显示在 ScrollView 的 frame layer 。
根据我们的 ScrollView 的 frame layer 获得到 GeometryProxy ,我们需要在 ScrollView 上定义一个新的坐标空间,并在 GeometryReader 中引用它:
这是可行的,因为 ScrollView 把 frame layer 暴露在的外层。现在正确的 ScrollView 的 offset 偏移量在视图层次结构中可用。
简单修改下,在控制台看下结果!!
我们在开发中需要抽取封装,可以在需要时轻松地获得偏移量。
ScrollView 接受 content 内容视图构建器,这使得我们无法获得该内容的第一个元素(如果你知道方法,请联系我)
我们可以申请 background 修饰器作用于整个 content 上,但是这并没有考虑到 content 内容本身可能是一个 Group 组的可能性,在这种情况下,修饰符将应用于组的每个元素,这不是我们想要的。
一种解决方案是将 geometry reader 移动到 ScrollView 内容的上方,然后在实际内容上用负的 padding 来隐藏它:
类似于 readSize 修饰器,我们也可以让 ScrollViewOffset 在每次偏移量改变时触发回调方法:
然后我们就可以这样使用:
现在我们有了这个强大的组件,就可以做我们要做的了。
最常见的用法可能是在滚动时改变顶部安全区域的颜色:
这是一个基于滚动位置改变背景颜色的视图:
浮点数取余:商取整数,余数还是浮点数
类似整型的 % ,
我们在ios14上看到的一切都很好,但是在ios13上,最初的偏移量是不同的。
在iOS13中,偏移量考虑了顶部安全区域:例如,嵌入大标题的 NavigationView 中的 ScrollViewOffset 的初始偏移量为 140 ,iOS14中的相同视图的初始(正确)偏移量值为 0 。
这点是需要特别注意的!!!
有了 ScrollViewReader ,在大多数用例中,我们不再需要访问 ScrollView 偏移量:对于其余的用例, GeometryReader 都是可以做到的
以上就是关于document.elementFromPoint获取坐标点下的元素全部的内容,包括:document.elementFromPoint获取坐标点下的元素、c语言偏移量、什么是偏移量 怎么计算等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)