问题标签 [uiscrollview]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
87480 浏览

ios - 有没有办法隐藏 UIScrollView 中的滚动指示器?

我有一个用例,这些指标会干扰用户交互。我可以子类化并覆盖一个方法或做类似的事情来从滚动视图中删除滚动指示器吗?

0 投票
2 回答
1345 浏览

iphone - UIScrollView:当用户滚动时,我将如何回收可滚动网格中的对象?

我有一个带有图像网格的 UIScrollView。目前他们只有6个,但有一天可能会有几百个。因此,在 UIScrollView 中创建几百个 UIImageView 对象并用图像数据填充它们当然是个坏主意。我想我是在 Apple 文档的某个地方读到的:他们建议只创建需要填充可滚动可见区域的 mutch 元素。

但如果我立即重新定位 UIImageView 元素,我担心会出现性能问题。我认为。当用户开始向下滚动时(假设它从 0,0 开始),我必须重新定位那些超出顶部可见区域的 UIView 对象,将它们快速定位到底部,然后分配非常(!! ) 快速将新图像对象添加到该行中的 UIImageViews。我的意思是......如果用户开始像野生瞪羚一样滚动,越来越快怎么办?

你这样做的方法是什么?

0 投票
1 回答
703 浏览

iphone - 如何使用 pagingEnabled=YES 设置 UIScrollView 的分页行为?

文档说:

如果该属性的值为 YES,则当用户滚动时,滚动视图会在视图边界的倍数处停止。默认值为 NO。

很好,当用户滚动时它会在视图边界的倍数处停止;)但是有多少倍数?那蜜蜂是怎么计算的?我有一个非常奇怪的行为。我有 15 张 50x50 的小图像垂直对齐。我如何设置它会在每滚动 50 个单位或每张图像时停止?它确实停在顶部一次,一次在中间,一次在最后。这不是我所期望的行为。

0 投票
1 回答
441 浏览

iphone - 如何在 UIScrollView 中的滚动事件上调用方法?

我有一个 UIScrollView 对象,我想在其中实现用户滚动时发生的一些效果。每次用户开始滚动动作或滚动时,有没有办法在我的视图控制器类上调用方法?

我需要的也是当前的滚动位置。我几乎可以肯定有一些有用的东西可用。也许我可以每秒询问 50 次当前滚动偏移量之类的。任何的想法?

0 投票
2 回答
31823 浏览

iphone - 如何设置 UIScrollView 的滚动位置?

我见过 setContentOffset:animated: 方法。那会滚动到特定位置,还是“偏移”是什么意思?

0 投票
3 回答
2109 浏览

iphone - 为什么我的 UIScrollView 委托的 -scrollViewWillBeginDragging 方法会返回如此奇怪的 contentOffset 值?

问题解决了!我的代码中有愚蠢的错别字!

这是我的 UIScrollView 委托的方法:

控制台中的输出如下:

当然我的 contentOffset 不是那么大;)

0 投票
3 回答
1499 浏览

iphone - 在 UIScrollView 中滚动期间如何实现视图的回收?

好吧,在以下情况下会调用委托:

  • 滚动视图开始滚动
  • 初始化滚动运动后从滚动视图中抬起的手指
  • 滚动视图停止减速

但现在的问题是,如果你想在滚动时回收那些视图,你必须在滚动期间非常快地做到这一点。当用户滚动时,某些东西必须触发一种方法,该方法将从上到下或从下到上删除一个或三个视图。

问题:

  • 用户可能滚动非常慢或非常快。我不知道。

  • 滚动开始后,我必须每秒检查 50 次偏移量,并确定是否该回收视图。下一个问题是,如何每秒调用 50 次方法,以及如何在滚动停止时停止该方法。

你知道哪些模式可以解决这个问题?我确信那里有一些好的。

0 投票
2 回答
2073 浏览

iphone - 你将如何为 UIScrollView 实现 dataSource 对象?

如果我错了,请告诉我:

我创建了一个新类 ScrollViewDataSource。该类符合我在委托中为滚动视图创建的协议。嗯,它是一个非常特殊的委托,它在滚动时会做一些非常复杂的事情。因此,此委托在初始化时接收该数据源对象。数据源对象现在有一个方法

  • (NSArray*)subviewsFromIndex:(NSInteger)fromIndex toIndex:(NSInteger)toIndex;

因此,当用户滚动时,委托会在滚动时多次响铃数据源对象以请求数据。我将在滚动期间回收视图。这意味着,如果用户向下滚动,我会从上到下删除视图,并用新数据填充它们。

NSArray 包含 UIView 对象,这些对象将在滚动期间适当定位。此外,在第一次启动包含滚动视图的视图时,数据源将传递数据以显示第一个可见内容。

这是一个好的模式,还是你有更好的想法?顺便说一句:我知道 UITableView 做了类似的事情。但我想学那个。这对我来说是一种练习。谢谢!

0 投票
2 回答
551 浏览

iphone - 我是否必须在另一个线程中运行 UIScrollView 的委托以防止滚动期间出现性能问题?

我将在滚动期间在委托的方法中做一些复杂的事情。我还将实现内容的动态预加载,这样理论上可以滚动浏览几十万张图片。但我担心,每次我为滚动方向的下一个大块执行预加载操作时,委托都会等待数据源传递数据,并且整个滚动视图会在那一刻被冻结。

问题是,我总是需要访问滚动视图的子视图。我是该平台的新手,我不知道当我为该预加载操作打开另一个线程时我是否仍然可以访问?还是滚动视图不会等待代表完成任务?

我在计划阶段,所以还没有实施太多的喷气机。

0 投票
8 回答
20536 浏览

iphone - 使用 pagingEnabled 的 UIScrollView 中页面之间的照片应用程序式间隙

分页模式下的 UIScrollView 假定页面彼此相邻,没有间隙。但是,如果您在“照片”应用程序中打开一张照片并在照片中滑动,您会发现它在页面之间存在一些间隙。我也想要这些差距。

我正在寻找现有的解决方案(如果有的话),或者除了我在下面解释的那个之外,还有一些关于实现页面间隙的更奇怪的想法。或者也许我错过了一些明显的简单方法?

需要明确的是:我希望只有在滚动时才能看到间隙,所以我不能简单地插入页面内容。


我的计划是尝试从scrollViewDidScroll回调内部移动页面内容,以便(假设您向右滚动)最初目标页面稍微偏移到其页面边界的右侧,并且当您到达目标页面时它回到了正确的位置,并且源页面稍微偏离了其边界的左侧。(或者也许不是连续移动东西,我会更好地移动偏移量,比如说,正好在页面之间的中间。)

我是ScrollingMadness 文章+示例的作者,我一直在向这里推荐一些人。我已经实现了程序缩放,并让照片内缩放+滚动与照片间分页一起工作。所以我知道如何使用 UIScrollView,并且正在寻找高级的东西。

请不要将我指向 TTScrollView。我自己已经向很多人指出了它,但我认为它与本机 UIScrollView 行为相去甚远,并且不想在我的项目中使用它。