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

以编程方式将视图添加到层次结构后,滚动ScrollView不起作用

在编程中,当我们以编程方式将视图添加到层次结构后,滚动ScrollView可能不起作用的原因有多种可能性。下面是一些可能的原因和解决方法:

  1. 视图大小超出ScrollView的边界:如果添加的视图的大小超出了ScrollView的边界,滚动将不起作用。解决方法是确保添加的视图大小适合ScrollView,并且不超出其边界。
  2. 没有设置ScrollView的内容大小:ScrollView需要知道其内容的大小才能正确地进行滚动。确保设置ScrollView的内容大小,以便ScrollView知道何时启用滚动。
  3. 没有启用滚动:ScrollView默认情况下可能不启用滚动。确保在代码中启用滚动功能,例如通过设置ScrollView的isScrollEnabled属性为true。
  4. 没有正确设置ScrollView的contentSize:ScrollView的contentSize属性定义了其内容的大小。确保设置contentSize以适应添加的视图的大小。
  5. 没有正确设置ScrollView的约束:如果使用Auto Layout来布局ScrollView及其内容,确保正确设置ScrollView及其内容的约束。不正确的约束可能导致滚动不起作用。
  6. 没有正确设置ScrollView的滚动方向:ScrollView可以水平滚动或垂直滚动,具体取决于其滚动方向属性。确保设置正确的滚动方向,以便ScrollView可以按预期滚动。

总结起来,要使以编程方式添加的视图在ScrollView中正确滚动,需要确保视图大小适合ScrollView的边界,设置ScrollView的内容大小和约束,启用滚动功能,并正确设置滚动方向。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android中文API——ScrollView

二、概述 一种可供用户滚动层次结构布局容器,允许显示比实际多的内容。...此方法视图滚动到顶部或者底部,并且焦点置于新的可视区域的最顶部/最底部组件。若没有适合的组件做焦点,当前的ScrollView会收回焦点。...此方法向上或者向下滚动一屏,并且焦点置于新可视区域的最上/最下。如果没有适合的component作为焦点,当前scrollView收回焦点。...参数 x     滚动到的X位置 y     滚动到的Y位置 public void setFillViewport (boolean fillViewport) 设置当前滚动视图是否内容高度拉伸填充视图可视范围...如果只是添加到视图,调用时显示的是旧值0。(译者注:也就是添加到视图时,oldw和oldh返回的是0)。

4.5K30

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

缩放结束 scrollView 本身的 frame 并没有发生变化 缩放结束 imageView 本身的 bounds 也没有发生变化 缩放结束 imageView 的 center 发生了变化...滚动视图是否被分割成多个独立的页面 1.4 手工代码实现拖动 // 创建scrollView UIScrollView *scrollView = [[UIScrollView...添加到View上 [self.view addSubview:scrollView]; // 把imageVIew添加到scrollview [scrollView addSubview...,增加了这个属性 文档释义:contentOffset:内容视图原点(origin)所在的偏移位置,相对于 scroll view 的 origin,默认是 CGPointZero 2.1.1 方法:恒定速度移动到新的...contentSize 的数值比scrollView自己的size大的时候才可以滚动 scrollView滚动就必须设置了滚动视图的 contentSize contentSize 的 width

1.5K60

UIScrollView

frame是视图在屏幕中展示的位置和大小,也就是可视区域的位置和大小。 contentSize是scrollView视图的内部内容可以滚动的区域大小,也就是scrollView视图内容的实际大小。...contentOffset是scrollView实际滚动区域的左上角与视图可视区域左上角的距离。 pagingEnabled是是否一页的大小整体进行滚动,也就是用来实现翻页的效果。...UIScrollView的一些常用的代理方法如下: #pragma mark - UIScrollViewDelegate //监听页面滚动,根据scrollView.contentOffset来做业务逻辑...用于页面滚动停止的时候开启一个逻辑,比如视频自动播放(页面停止滚动,开启视图滚动前暂停的gif或者视图的播放) - (void)scrollViewDidEndDecelerating:(UIScrollView...tableView,“关注、推荐、热榜”标题栏是一个collectionView) 然后,“关注、推荐、热榜”每一个标题栏都对应一个tableView,一共有3个tableView,这三个tableView都添加到一个共同的

87420

MyLayout&TangramKit 的重大升级!

为此当UIScrollView要和AutoLayout进行结合使用并实现滚动能力的话就不能直接所有子视图添加到UIScrollView中去, 而是需要中间建立一个容器视图,首先将容器视图添加到UIScrollView...如果不需要水平滚动则改为容器视图的宽度等于UIScrollView视图的宽度。通过这样的设置UIScrollView视图的contentSize将得到自动的计算。...2.UIScrollView的滚动 MyLayout&TangramKit对于处理和UIScrollView进行结合时进行特殊处理,当一个布局视图添加到滚动视图时,布局系统内部会负责处理滚动视图的contentSize...要实现UIScrollView滚动时,只需要在一个滚动视图内添加一个布局视图,然后所有其他子视图添加到这个布局视图中去,这个和上面的AutoLayout的处理方式是一样的,最后布局视图的尺寸自适应属性设置为...因此如果想使用布局视图的尺寸自适应功能,那么在布局视图的尺寸设置为wrap,就可以像使用UILabel那样不用去设置布局视图的宽度约束和高度约束了。比如有两个兄弟视图A,B。

2K20

零基础入门 23: UGUI ScrollView

---- 滚动视图ScrollView是什么呢?大家不妨先来看一下游戏内对ScrollView的使用 ?...之前在讲解ScrollBar这个滚动条的时候,这个图就曾经使用过,也讲解过,ScrollBar滚动条通常会配合滚动视图ScrollView进行使用。 滚动视图,顾名思义,实际就是可以滚动的UI视图。...那么如何在Unity里制作一个ScrollView呢?有如下两种方式。 今天会使用这俩种方式来为大家制作一个滚动视图。...【方式一】 在早期的UGUI版本中,Unity并没有一个现成的滚动视图控件可以提供给大家使用,而是提供了一个名为ScrollRect的组件,配合Mask组件来完成ScrollView的创建和使用。...运行看看效果吧 ? 从Unity为大家提供的控件来看,和我们手作的区别,在于现成的组件已经把结构都为大家搭建完毕,并且为大家创建好了两个滚动条以为区分显示和使用。

3K20

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

还有 KeyframeAnimator 视图,可以使用关键帧来实现动画。 ScrollView 今年 ScrollView 有了很多优秀的新增功能。...scrollTargetLayout() } .scrollPosition(id: $scrollPosition) } } 如上例所示,使用 scrollPosition 视图修饰符内容偏移量绑定到一个状态属性上...每当用户滚动视图时,它会通过设置第一个可见视图的标识来更新绑定。...还可以通过编程方式滚动到任何视图,但是,应该使用 scrollTargetLayout 视图修饰符来告诉 SwiftUI 框架在哪里查找标识更新绑定。...它允许在滚动视图中启用分页。 搜索 与搜索相关的视图修饰符也有一些很好的新增功能。例如,可以通过编程方式聚焦到搜索字段。

32020

UIScrollView

//7.内容视图的距离,是从封闭的滚动视图插图 @property(nonatomic) UIEdgeInsets contentInset; around content //8.滚动视图的代理...知识用户是否已经开始滚动内容 @property(nonatomic,readonly,getter=isDragging) BOOL dragging; //25.返回的内容是否在滚动视图,用户接触他们的手指...touchesShouldBegin:(NSSet *)touches withEvent:(UIEvent *)event inContentView:(UIView *)view; //29.它开始发送跟踪邮件的内容视图视图调用此方法...scrollView willDecelerate:(BOOL)decelerate; //47. scrollView开始降速的时候调用 - (void)scrollViewWillBeginDecelerating...代理协议的格式:控件类名Delegate,比如UIScrollViewDelegate、UITextFieldDelegate 代理方法:方法名一般是控件名开头,比如UIScrollView的代理方法一般scrollView

1.8K60

iOS 面向协议方式封装空白页功能

嘿嘿,这个可以有,那我们接下来就来试试怎么通过协议的方式来避免上述情况,并且实现一行代码添加空白页功能 前言 如果对面向协议有疑问的同学可以看下我之前的两篇文章 iOS - Swift 面向协议编程...我们现在的目的就是让目标控制器或者目标视图在遵守我们的协议,就可以有实现空白页的功能。...还要区分scrollView,那就得保存当前scrollView,在退出当前controller还要把对应的东西置空。好咯好咯,那你说到底要怎么搞才最合适?...} } 4、使用定制属性字典 这里返回提示图片的方法为例吧 public func image(forEmptyDataSet scrollView: UIScrollView!)...可以使用Cocoapods的方式来安装使用 pod 'LXFProtocolTool' 我也 iOS - Swift 面向协议编程(二) 中提及的通过协议便捷加载xib的功能也集成了进来。

1.4K50

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

本文介绍几种在 SwiftUI 中获取当前滚动状态的方法,每种方法都有各自的优势和局限性。...: UIScrollView)手指滑动可滚动区域( 此时手指已经离开 ),滚动逐渐减速,在滚动停止时会调用此方法scrollViewDidEndDragging(_ scrollView: UIScrollView...preference 与 onChange 的调用时机非常类似,只有在值发生改变才会传递数据。在 ScrollView、List 发生滚动时,它们内部的子视图的位置也发生改变。...判断的准确度没有前两种方式高当可滚动组件中的内容出现了非滚动引起的尺寸或位置的变化( 例如 List 中某个视图的尺寸发生了动态变化 ),本方式会误判断为发生了滚动,但在视图的变化结束,状态会马上恢复到滚动结束滚动开始...( 状态已变化为滚动中 ),保持手指处于按压状态并停止滑动,此方式会将此时视为滚动结束,而前两种方式仍会保持滚动中的状态直到手指结束按压IsScrolling我两种解决方案打包做成了一个库 —— IsScrolling

3.7K40

iOS开发之多图片无缝滚动组件封装与使用

一、Demo运行效果、原理及调用方式     1.运行效果     下面的GIF呢就是Demo的运行效果,一定间隔,图片会自动切换,当然也支持手指滑动。...17 imageViewDisplay.animationInterVale = 0.6; 18 19 //把该视图添加到相应的父视图上 20 [self.view...8 _widthOfView = frame.size.width; 9 10 //获取滚动视图的高度 11 _heightView...    往我们自定义组件视图上添加ScrollView, ScrollView的的大小和我们自定义组件的大小一样,并且设置相关属性,设置代理方法,代码如下: 1 #pragma -- mark 初始化...如果目前是最后一张图片则无动画的切换到ScrollView的第一张图片,因为第一张图片和最后一张图片是一样的,所以用户看不到这个无动画的切换,切换,图片有开始从第一个开始滚动,所以就可以无限循环的滚动

1.7K90

iOS开发之多表视图滑动切换示例(仿头条客户端)---优化篇

首先内存问题是必须考虑的,不能把这么多的TabalView实例化添加到ScrollView上,只要是做过iOS的小伙伴这个问题应该不难看出。...一、多张表视图的内存问题解决方案     借鉴TableView中Cell的重用机制,我们就把之前的Demo中ScrollView上的TableView进行复用,在我的博客中用的是两个TableView...下面是实例化ScrollView上的TableView的代码,由下面的代码可以看出只实例化2个TableView, 并且把初始化的TableView放在了TableView的初始化的位置上。...代码如下: 1 #pragma mark --根据scrollView滚动位置复用tableView,减少内存开支 2 -(void) updateTableWithPageNumber: (NSUInteger...也是防新闻头条的那种,按钮多到一定个数时回使用ScrollView进行滚动。在本Demo中是超过6个按钮就可以滑动,而6个以下是平分整个屏幕的宽度的。

2K70

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

不限于 ScrollView,支持所有可滚动容器(包括 List、TextEditor 等)。 将可滚动容器内的所有子视图视为一个整体,并为其添加 margin。...例如,在下面的代码中,为 ScrollView 的 leading 方向添加安全区域的两种方式效果是一致的。...当 scrollClipDisable 为 false 时,滚动内容会被裁剪适应滚动容器边界。任何超出边界的部分将不会显示。...可采用 优化在 SwiftUI List 中显示大数据集的响应效率[5] 一文中介绍的方式来解决。 scrollPostion(id:) 使用此修饰符可以让滚动视图滚动到特定的位置。...就我个人而言,在 SwiftUI 5 中,ScrollView 的原生方案已经能够满足大多数需求,因此我们看到更多人采用 ScrollView + LazyStack 的组合方式

67020

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

在更复杂的 UI 中,由于视图的更新速度过快,性能( 至少在 macOS 上 )迅速下降。A:有不同的策略。ObservableObject 是使视图视图层次结构的失效( 引发重新计算 )的单元。...A:你最好的选择是使用 ScrollView 和 ScrollViewReader,并在 onAppear 或新内容进来时滚动到最底部的视图。我不建议尝试旋转滚动视图。...A:你可以使用 dismissSearch 环境属性编程方式取消搜索字段。目前还没有 API 可以程序化地焦点转至搜索字段。...视图的功能分散到函数、更小的视图结构以及视图修饰器当中是很好的解决方法。...image-20221023171100484滚动速度Q:有好的方式在 List 和 ScrollView 滑动时监听滑动的 velocity 值么?

14.7K30

Unity-Optimizing Unity UI(UGUI优化)04 UI Controls

整数分解为数字并显示适当的数字精灵是相对微不足道的。 这种专门的数字显示系统可以无分配的方式构建,并且比Canvas驱动的UI Text组件更快地计算,动画和显示。...这有两种基本方式填充滚动视图: 一次性滚动视图全部需要的元素进行加载 缓存元素,在需要元素的时候重新定位它们 这两种解决方案都会有一些问题。...简单的Scroll View 元素池 最简单的实现Scroll View中的对象池,同时保留ScrollView的原生便利性,最简单的方法使采用混合: 为了在UI中布置元素,使布局系统正确的计算滚动视图内容的大小...然后为ScrollView中可见部分的UI元素实例化一个足够更大的UI元素池,并将占位符设置为这些元素的父节点。当ScrollView滚动的时,重用UI有元素以显示滚动视图中的内容。...然而,这个操作增加drawcalls的数量。更进一步,如果ScrollView中的元素不具有可变尺寸,就没必要重新计算整个ScrollView的布局和节点。

3.4K20

【IOS开发基础系列】UIScrollView专题

这里的例子是在scrollView上放置4个2排2列的视图,但是内存中只占用6个视图的内存空间。当scrollView滚动的时候,通过不停的重用之前视图的内存空间,从而达到节省内存的效果。...2.如果scrollView向上面滚动,一旦最末排的视图view滚出了可视范围,就改变滚动出去的那个view在scrollView中的frame,移动到最前面。        ...假如值是 NO,scrollView 发送 tracking events ,就算用户移动手指,scrollView 也不会滚动。...创建一个子类         重写一些功能并改变行为         关于这种方式的争议         应用程序的逻辑和行为变成了视图本身的一部分,就像,你可能有一些定制的滚轴逻辑,,在那你只在意一个视图控制...UIScrollView原理详解 http://blog.csdn.net/likendsl/article/details/7592867 TwitterPaggingViewer——类似Twitter,滑动视图

37530

webview 和 React Native 中吸顶效果实现

希望通过这篇文章,你学习到: webview 中吸顶的实现方式。 React Native 中吸顶方法,SectionList 是如何实现吸顶的。...sticky 和 absolute 定位属性在 ios 上的表现不友好,在 scrollview视图容器组件内部滚动时候,可能存在抖动的问题,这样用户体验非常差。...scrollview 是一个滚动的容器组件,web 中并没有现成的 scrollview 组件,常见的 scrollview 组件主要存在小程序或者一些跨段解决方案中,比如 Taro 中的 Scrollview...微信小程序为例子,看一下 scroll-view 如何实现吸顶,这种方式主要是依靠计算的方式,来确定什么时候元素应该吸顶了。...<ScrollView stickyHeaderIndices={[0]}//第一个子元素即头部组件,上滑时吸顶 /> stickyHeaderIndices: 一个子视图下标的数组,用于决定哪些成员会在滚动之后固定在屏幕顶端

2.9K10

编码篇-iOS开发中的奇巧小伎

43、float数据取整四舍五入 44、让正在滑动的scrollView停止滚动(不是禁止,而是暂时停止滚动) 45、使用xib设置UIView的边框、圆角 46、一个xib添加到另外一个xib上...停止滚动(不是禁止,而是暂时停止滚动) [scrollView setContentOffset:scrollView.contentOffset animated:NO]; 45、使用xib设置UIView...image 46、一个xib添加到另外一个xib上 // 假设你的自定义view名字为CustomView,你需要在CustomView.m中重写 `- (instancetype)initWithCoder...一个xib添加到另外一个xib上 47、处理字符串,使其首字母大写 NSString *str = @"abcdefghijklmn"; NSString *resultStr; if (str &&...其响应事件会和其他view互斥(有其他view事件响应的时候点击它不起作用) view.exclusiveTouch = YES; // 一个一个设置太麻烦了,可以全局设置 [[UIView appearance

5.3K10

零基础入门 19: UGUI ScrollBar

通常在实际项目中,对ScrollBar的应用非常简单,主要用于配合TableView或者ScrollView来进行使用,下一节我们说明一下Unity里的ScrollView滚动视图。...然后再来看一下这个ScrollBar的结构。 ? 中间的Sliding Area是一个空的父级对象。下面的handle就是我们所看见的图里的白色区域,而scrollbar是图里的灰色背景条。...通常来说,我们在使用的时候直接设置ScrollBar背景图以及Handle的贴图,然后scrollBar关联给某一个tableView或者ScrollView即可使用了。...Scrollbar是配合ScrollRect组件使用的,通常一个ScrollRect滚动视图才会增加Scrollbar这样的一个滚动条,而Unity也为我们对ScrollBar的使用做到了最极致的方便。...而实际中的项目也是如此,我们通常在使用滚动视图的时候,只需要创建一个Scrollbar并且设置好合理的显示方式和控制逻辑即可在scrollRect的带动下,完成滚动条的自动滚动。 效果图如下。 ?

1.4K20

iOS开发之三个Button实现图片无限轮播(参考手机淘宝,Swift版)

这两天使用Reveal工具查看"手机淘宝"App的UI层次时,发现其图片轮播使用了三个UIButton的复用来实现的图片循环无缝滚动。...三、该自定义控件的视图层级 下图就是我们按照上面的思路,使用ScrollView上添加3个Button来实现的图片轮播,无缝滚动的效果还是蛮OK的。...四、代码实现 运行效果看完了,UI层级结构也看完了,那么接下来就到了我们代码实现的时刻了。下方从组件的调用方式入手,逐步的去看一下上述效果是如何实现的。...1.上述组件的调用方式 下方代码段就是上述组件的实例化和调用方式,首先进行初始化,然后将该组件添加到视图上。...也就是说当用户开始滑动时我们要对定时器进行挂起,当用户滑动结束要对定时器进行唤醒。当然这些都是在ScrollView相应的代理方法中进行处理的,具体如下所示: ?

2.1K80
领券