首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

uni-app 小程序页面滚动到指定位置相对位置计算

selector: "#id", // 找到ID滚动到指定位置 duration: 300 // 滚动动画的时长,默认300ms,单位 ms }); 一个是指定位置...我定位王王,但 只滚动到了李四的位置,王五在外面,没显示出来。 检查了高度,发现只是王五那一排 及以后的各排,都只定位到李四位置,他就是他们组的外层。这可不行。...想了想,那是不是res.top+行数x行高不就可以滚动到相应的位置了。 index 为王五的索引,也就是下标,下标+1/3行-1 就是相对位置了,再乘以行高不就解决了。...//相对位置计算 var ntop = Math.ceil((index+1) /3)-1; console.log(ntop,index); 数据结构是这样滴。...$msg("没有此号") return; } //相对位置计算 var ntop = Math.ceil((index+1) /3)

52430
您找到你想要的搜索结果了吗?
是的
没有找到

深入了解 SwiftUI 5 中 ScrollView 的新功能

SwiftUI 5.0 中,苹果大幅强化了 ScrollView 功能。新增了大量新颖、完善的 API。本文将对这些新功能进行介绍,希望能够让它们更多、更早的帮助到有需要的开发者。...可采用 优化在 SwiftUI List 中显示大数据集的响应效率[5] 一文中介绍的方式来解决。 scrollPostion(id:) 使用此修饰符可以让滚动视图滚动到特定的位置。...NamedCoordinateSpace.scrollViewSwiftUI 5 中,苹果新增了 NamedCoordinateSpace 类型,方便用户命名坐标系,并提供了预置的 .scrollView...scrollTransition 其实,在很多场景下,我们并不需要通过 NamedCoordinateSpace.scrollView 获取非常精确的位置关系。...就我个人而言,在 SwiftUI 5 中,ScrollView 的原生方案已经能够满足大多数需求,因此我们将看到更多人采用 ScrollView + LazyStack 的组合方式。

65520

WWDC 23 之后的 SwiftUI 有哪些新功能

前言 WWDC 23 已经到来,SwiftUI 框架中有很多改变和新增的功能。在本文中将主要介绍 SwiftUI 中数据流、动画、ScrollView、搜索、新手势等功能的新变化。...数据流 Swift 5.9 引入了宏功能,成为 SwiftUI 数据流的核心。SwiftUI 不再使用 Combine,而是使用新的 Observation 框架。...动画 动画始终是 SwiftUI 框架中最重要的部分。在 SwiftUI 中轻松实现任何动画,但之前的框架版本缺少一些现在具有的功能。...ScrollView 今年 ScrollView 有了很多优秀的新增功能。首先,可以使用 scrollPosition 视图修饰符来观察内容偏移量。...还可以通过编程方式滚动到任何视图,但是,应该使用 scrollTargetLayout 视图修饰符来告诉 SwiftUI 框架在哪里查找标识以更新绑定。

31620

如何判断 ScrollView、List 是否正在滚动中

遗憾的是,SwiftUI 并没有提供这方面的 API 。本文将介绍几种在 SwiftUI 中获取当前滚动状态的方法,每种方法都有各自的优势和局限性。...Bool)手指拖动结束后( 手指离开时 ),调用此方法在 SwiftUI 中,很多的视图控件是对 UIKit( AppKit )控件的二次包装。...和 List .introspectScrollView { scrollView in scrollView.delegate = delegate...目前 SwiftUI 在内部的实现上去 UIKit( AppKit )化很明显,比如,本节介绍的方法在 SwiftUI 4.0 中已经失效方法二:Runloop我第一次接触 Runloop 是在学习 Combine...在 ScrollView、List 发生滚动时,它们内部的子视图的位置也将发生改变。我们将以是否可以持续接收到它们的位置信息为依据判断当前是否处于滚动状态。

3.7K40

GeometryReader :好东西还是坏东西?

Proposed size )作为自身的需求尺寸( Required Size )返回给父视图 将父视图的建议尺寸作为自身的建议尺寸传递给子视图 将子视图的原点(0,0)置于 GeometryReader 的原点位置...在非滚动方向上,ScrollView 会向子视图提供该维度上的全部可用尺寸。而在滚动方向上,它向子视图提供的建议尺寸为 nil。...在一些复杂的布局场景中,或者在某些设备或系统版本中,布局可能需要经过几轮的协商才能获得最终稳定的结果,尤其是当视图需要依赖 GeometryReader 提供的几何信息来重新确定自己的位置和尺寸时。...这既保证了信息获取的准确性(尺寸、位置与要获取的视图完全一致),也不会在视觉上造成额外的影响。...此外,由于 overlay 支持设置对齐指南,比起 GeometryReader,它可以更方便地调整图片的对齐位置。 另外,GeometryReader 经常用于按照一定比例分配两个视图的空间。

43070

WWDC 23 ,SwiftUI 5 和 SwiftData 的初印象

SwiftUI 如果说从 SwiftUI 1.0 到 4.0 每年的升级是一种小修小补的行为,那么今年苹果在 SwiftUI 5.0 上做出的努力至少算得上是中期改款了。...今年 SwiftUI 的提升相当的大,有些改动可以视为革命性的变化。...这从根本上解决了当前影响 SwiftUI 应用( 过渡计算 )的效率问题。让开发者可以更加自由的来设计数据结构以及随心所欲的注入数据源。 不过很遗憾,这项新特性只能在 SwiftUI 5 上实现。...大幅改善了 ScrollView 的控制力 本次升级中,为 ScrollView 带来了新的动态滚动定位系统( 不依赖 ScrollViewReader 和显式的 id 声明)、一次性的定位系统( 在视图进入后...,直接定位到滚动视图的特定位置,只能使用一次 )、全新的滚动条控制( 闪烁 )、可自定义行视图在滚动区域的顶端和显示区域的显示状态( 例如可用其实现类似 watchOS 中的滚动到顶端子视图缩小的视觉效果

1.1K20

WWDC 23 ,SwiftUI 5 和 SwiftData 的初印象

欢迎大家在 Discord 频道[2] 中进行更多地交流 SwiftUI 如果说从 SwiftUI 1.0 到 4.0 每年的升级是一种小修小补的行为,那么今年苹果在 SwiftUI 5.0 上做出的努力至少算得上是中期改款了...今年 SwiftUI 的提升相当的大,有些改动可以视为革命性的变化。‍‍...这从根本上解决了当前影响 SwiftUI 应用( 过渡计算 )的效率问题。让开发者可以更加自由的来设计数据结构以及随心所欲的注入数据源。 不过很遗憾,这项新特性只能在 SwiftUI 5 上实现。...大幅改善了 ScrollView 的控制力 本次升级中,为 ScrollView 带来了新的动态滚动定位系统( 不依赖 ScrollViewReader 和显式的 id 声明)、一次性的定位系统( 在视图进入后...,直接定位到滚动视图的特定位置,只能使用一次 )、全新的滚动条控制( 闪烁 )、可自定义行视图在滚动区域的顶端和显示区域的显示状态( 例如可用其实现类似 watchOS 中的滚动到顶端子视图缩小的视觉效果

34810

iOS实例——滑动列表展现隐藏顶部视图

引 项目中需要一个效果:下列表时顶部的自定义视图不移动,上移时隐藏顶部视图,提高列表的展现范围。...在此基础上海加了一个隐藏列表时的动态渐入渐出效果,如下: 实现 实现的要点是,顶部的视图要随着列表的滚动而滚动,且列表最上是可以滚动到屏幕顶部的,最下就是滚动到一个固定的位置就不再往下滚动了,至于渐变效果只要能控制滚动自然也能控制随着滚动去改变...的contentview的顶点相对scrollview位置,四个参数分别代表距离上,左,下,右边的像素长度。...这样就不会一点列表就移动到被遮挡了。...在处理方法中我们要做两件事,第一件事是让顶部视图的高度随着列表移动而移动,但是要控制列表最高移动到位置TOP和最低移动到位置BOTTOM,这其实就是顶部视图的低端对应的Y值。

1.8K10

Ask Apple 2022 与 SwiftUI 有关的问答(下)

A:你最好的选择是使用 ScrollView 和 ScrollViewReader,并在 onAppear 或新内容进来时滚动到最底部的视图。我不建议尝试旋转滚动视图。...对于类似的情况,也可以不使用显式动画驱动( 不使用 withAnimation ),只需将 .animation(.default, value: isPresented) 移动到 VStack 之外即可...可以尝试在获取位置改变的同时记录时间变化来计算速度。不过如果是涉及到用户交互,建议衡量一下用户对速度的敏感程度和交互效果本身,是否可以用更便捷的方式实现。...在 SwiftUI 中,有一个从第一版开始就存在但尚未公开的纯 SwiftUI 实现的滚动容器 —— _ScrollView 。...该滚动容器提供了不少标准 ScrollView 无法提供的 API 接口,例如对手势的加强控制、容器内视图的位移、反弹控制等。

14.7K30

iOS-UIScrollerView

UIScrollerView常见属性 CGPoint contentOffset 这个属性用来表示UIScrollerView滚动的位置(其实就是内容左上角与ScrollerView左上角的间距值...) CGSize contentSize 这个属性用来表示UIScrollerView内容尺寸,滚动范围(能多远) UIEdgeInsets contentInset 这个属性能够在UIScrollerView...{ NSLog(@"即将开始滑动内容时"); } - (void)scrollViewDidScroll:(UIScrollView *)scrollView{ NSLog(@"正在滑动...@"点击状态栏是否可以回到顶部"); return YES; } //scrollViewShouldScrollToTop设置为YES,滚动视图在完成滚动到内容顶部时发送此消息 - (void...)scrollViewDidScrollToTop:(UIScrollView *)scrollView{ NSLog(@"滚动视图在完成滚动到内容顶部时发送此消息"); } UIScrollerView

15110

解析SwiftUI布局细节(二)循环轮播+复杂布局

我们看看最底层的代码先: NavigationView{ ScrollView(showsIndicators:false,content: {...3、再提一点关于上面说的滚动视图,在UIKit中我们可以用UICollectionView搞定一切,但是在SwiftUI中没有这个控件,我建议采用的方式是 ScrollView + HStack + VStack...的方式去实现,很多同行有说目前来看SwiftUI的List在数据量大的情况下性能不是特别好,采用ScrollView是个不错的方式,而且也很容易构建出来,并不是说每一个Item的位置都需要你去计算,....common).autoconnect() /// 拖拽的偏移量 @State var dragOffset: CGFloat = .zero /// 当前显示的位置索引..., /// 这是实际数据中的1就是数据没有被处理之前的0位置的图片 /// 所以这里默认从1开始 @State var currentIndex: Int = 1 ///

11.8K20

【Android从零单排系列二十六】《Android视图控件——ScrollView

ScrollView中,只能包含一个直接子视图(ViewGroup),通常是一个垂直方向的线性布局或相对布局。如果需要水平滚动效果,可以使用HorizontalScrollView作为替代。...这些组件可以是垂直方向的线性布局(LinearLayout)、相对布局(RelativeLayout)或其他ViewGroup。...常见方法: scrollTo(int x, int y):将ScrollView动到指定的位置,参数x和y分别代表目标位置的水平和垂直偏移量。...fullScroll(int direction):使ScrollView动到指定的边界,参数direction可以是View.FOCUS_UP(滚动到顶部)或View.FOCUS_DOWN(滚动到底部...smoothScrollTo(int x, int y):平滑地将ScrollView动到指定的位置,会有滚动动画效果。

33120

UIScrollView

//1.设定定条的样式 typedef NS_ENUM(NSInteger, UIScrollViewIndicatorStyle) { UIScrollViewIndicatorStyleDefault...垂直拖动是允许的内容,即使小鱼滚动视图的边界,默认是NO @property(nonatomic) BOOL alwaysBounceVertical; //12.一个布尔值,决定是否反弹总是发生在垂直滚动到达结束内容...指示缩放已超过指定的接受范围 @property(nonatomic,readonly,getter=isZoomBouncing) BOOL zoomBouncing; //38.一个布尔值 控制是否滚动到顶部的姿态是有效地...@property(nonatomic) CGPoint contentOffset; 这个属性用来表示UIScrollView滚动的位置 (其实就是内容左上角与scrollView左上角的间距值,初始位置...) @property(nonatomic) CGSize contentSize; 这个属性用来表示UIScrollView内容的尺寸,滚动范围(能多远) @property(nonatomic

1.8K60

Android开发笔记(一百六十四)仿京东首页的下拉刷新

虽然Android提供了专门的下拉刷新布局SwipeRefreshLayout,但它并没有页面随手势下的效果。...自定义的下拉刷新布局,首先要能够区分是页面的正常下,还是拉伸头部要求刷新。二者之间的区别很简单,直觉上看就是判断当前页面是否拉到顶了。...所以此处得捕捉页面滚动到顶部的事件,相对应的则是页面滚动到底部的事件。鉴于App首页基本采用滚动视图ScrollView实现页面滚动功能,故而该问题就变成了如何监听该视图滚到顶部或者滚到底部。...因为页面到顶时继续下拉,ScrollView要怎么处理?...一方面是整个页面已经拉到顶了,造成ScrollView已经无可再拉;另一方面,用户在京东首页看到的下拉头部,其实并不属于ScrollView管辖,即使ScrollView想拉这个头部兄弟一把,也只能有心无力

2.8K40

UIScrollView的一步步实现1 简介1.1 工作原理1.2 UIScrollView常见的几个重要控件1.3 UIScrollView常见的重要属性1.4 手工代码实现拖动2 三个重要属性的进

,增加了这个属性 文档释义:contentOffset:内容视图原点(origin)所在的偏移位置相对于 scroll view 的 origin,默认是 CGPointZero 2.1.1 方法:以恒定速度移动到新的...offset -(void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated; 2.1.2 方法:滚动到可见区域 滚动到可见区域...(靠近边缘-不会滚动到边缘外侧),如果当前区域完全可见,则什么也不做 如果指定的区域已经在可视范围,不会滚动 如果指定的区域完全超出contentSize的范围,不会滚动 如果指定的区域超越了当前可视区域...scrollView 通过修改 contentInset 调整内部和边缘的偏移 设置边距之后,初始没有效果,需要拖拽一下才有效果 可以通过设置 contentOffset 调整初始位置 contengInset...有一个重要属性: UIEdgeInsetsMake 用来描述内部控件最终可以弹回的位置属性,里面的值是上、左、下右

1.5K60
领券