问题标签 [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 投票
8 回答
53483 浏览

ios - 启用分页和缩放的 UIScrollView 图像/照片查看器

好的,我认为是时候在互联网上为这个问题建立一个官方位置了:How to make a UIScrollViewphotoviewer with paging and zooming。UIScrollView欢迎我的黑客伙伴。

UIScrollView启用了分页功能,并且UIImageViews像内置照片应用程序一样显示。(这听起来是不是很熟悉?)

我在github上找到了以下项目:

https://github.com/andreyvit/ScrollingMadness/wiki

它显示了如何在启用分页时在滚动视图中实现缩放。如果其他人尝试这样做,我实际上必须删除UIScrollView子类并使用本机类,否则它不起作用。我认为这是因为 3.0 SDK 中有关滚动视图如何拦截触摸事件的更改。

所以这个想法是在您开始缩放时删除所有其他视图,并将当前视图移动到 (0, 0) 中scrollview,更新contentsize等。然后当您缩放回 1.0f 时,它会重新添加其他视图并放置一切恢复正常。

无论如何,该项目在模拟器中运行良好,但在设备上,您正在调整大小的视图有一些令人讨厌的移动,这看起来是由于我们正在更改contentsize/offset等以调整视图大小。您必须移动此视图,否则您可以通过其他视图留下的空白向左平移。

我在3.0 SDK 发行说明的“已知问题”中发现了一个有趣的说明:

UIScrollView:缩放后,内容插入被忽略,内容留在错误的位置。

这种听起来就像这里正在发生的事情。放大后,视图将移出屏幕,因为您更改了偏移量等。

我已经在这上面花了几个小时,但我正在慢慢意识到这行不通。

Three20 的照片查看器是不可能的:它太重了,而且有太多不必要的 UI 和其他行为。

内置的照片应用程序似乎有一些魔力。如果您放大图像并平移到远边缘,则当前照片会独立于旁边的照片移动,这不是您在使用标准UIScrollView.

我看过关于嵌套UIScrollView's 的讨论,但我真的不想去那里。

有没有人用标准管理过这个UIScrollView(并且在 2.2 和 3.0 SDK 中工作)?我不喜欢滚动我自己的缩放 + 弹跳 + 平移 + 分页代码。

0 投票
2 回答
1873 浏览

iphone - 让 UITableView 在 UIScrollView 内不滚动和增长

我需要创建一个类似于下面的屏幕。我能想出的唯一方法是让 UIScrollView 作为父视图。然后为缩略图和正文(“All3Sports”)设置一个 UIImageView 和 UILabels。

对于电话号码和主页等部分,我认为我可以拥有一个 UITableView 并且让它不会根据它的内容垂直滚动和“增长”。我不知道该怎么做。我可以将其设置为不滚动,但随后内容会被剪辑。如果我将它设置为不剪辑,那么滚动视图仍然认为它的尺寸较小并且不会滚动内容。

如果有更好的方法来重现这个屏幕,我愿意接受。

提前致谢。

替代文字

0 投票
1 回答
303 浏览

iphone - MVC 问题...将代码放在 Controller 中的哪个位置,以及如何让 UIView 子类嵌套

我有一种感觉,我从高层次上搞砸了我的应用程序的设计。现在,我有一个控制器、应用程序委托、两个 UIView(一个是 Scrollview 的子类)和一个用于控制器的 nib。

在 IB 中,我将文件所有者的类设置为 MusicGridController,然后将 UIView 的类设置为 MusicGridView。因此,这些类的实例由 nib 实例化,对吗?然后,我有一个 UIScrollView,我想在 MusicGridView 之上分层。在应用程序代表中,我这样做了:

所以,我将scrollView子类添加到窗口中,然后将Controller的视图作为scrollView的子视图。

我认为我从根本上搞砸了架构。到目前为止,几乎所有与用户交互的代码都在我的 MusicGridView 中,而控制器实际上什么都不做。

我现在遇到的问题是我需要将触摸事件从 UIScrollview 传递给 MusicGridView 实例,但我不知道如何将它传递给正确的实例。

理想情况下,我认为我应该在 UIScrollView 子类的 init 方法中加载 MusicGridView,然后可能让 UIView 成为 UIScrollView 子类的实例。那行得通吗?

0 投票
10 回答
35240 浏览

iphone - 以编程方式强制 UIScrollView 停止滚动,以便与多个数据源共享表格视图

我有一个 UITableView,当用户触摸分段控件时,它的数据源和委托在几个自定义数据源对象之间切换(想想应用商店应用程序中的“热门付费”与“热门免费”)。

每个数据源对象保存它的最后滚动内容偏移量,并在它成为表视图的活动数据源时通过执行以下操作恢复它:

当用户在表格静止时切换数据源时,这很有效,但是如果用户在表格仍在移动(即减速)时点击分段控件,表格视图会继续从旧的偏移量减速,有效地覆盖我的contentOffset 分配。

当我设置 contentOffset 时,有没有办法强制表格视图停止滚动/减速,或者有另一种方法可以使这种类型的可切换数据源表格视图工作?

0 投票
20 回答
138209 浏览

ios - 如何检测 UIScrollView 何时完成滚动

UIScrollViewDelegate 有两个委托方法scrollViewDidScroll:scrollViewDidEndScrollingAnimation:但是这些都没有告诉你滚动何时完成。scrollViewDidScroll只通知您滚动视图确实滚动了,而不是它已完成滚动。

如果您以编程方式移动滚动视图而不是用户滚动,则另一种方法scrollViewDidEndScrollingAnimation似乎只会触发。

有谁知道检测滚动视图何时完成滚动的方案?

0 投票
1 回答
164 浏览

iphone - 有什么方法可以在另一个滚动视图中添加 UIScrollView 吗?

  • 我在另一个滚动视图中添加了 UIScrollView 但它不起作用。我还在 UIScrollView 中添加了 UITextView ,反之亦然,但它不起作用。如果有人尝试过或可以给出一些想法,那么请......提前谢谢你。

    问候 Gunjan Shah - iphone 开发人员

**

0 投票
2 回答
1733 浏览

iphone - UIScrollView 起点

我有一个主视图为 480 x 510 的 iPhone 应用程序。当我从纵向变为横向时,我对坐标系如何变化感到有些困惑。

最初,我有一个 480x480 的内容区域,并且想在侧面添加一个按钮来调出菜单。但是,我能找到的让文字沿着应用左侧的长度运行的唯一方法是将整个应用的方向更改为横向右侧。

现在,随着横向的方向,滚动视图从左上角开始,当我真的希望它从原始方向点开始(从它处于纵向模式时),这将是左下角。但我不知道如何改变滚动视图的原始起点。我尝试了 contentOffset,但它似乎不起作用。

另一种解决方法(我可能最终会这样做)是忘记在按钮上设置标题,而只需为按钮创建一个具有垂直方向文本的图形。

0 投票
1 回答
4861 浏览

iphone - 嵌套的 UISCrollViews - 防止父 Scrollview 在缩放子项时滚动

我有一个带有嵌套 UIImageViews 的 UIScrollView。每个图像视图都可以缩放,但是当我在缩放图像时尝试滚动内部滚动视图时,外部滚动视图会拾取它并切换图像视图。

如何防止这种情况发生,以便外部滚动视图仅在内部未缩放时滚动?

0 投票
2 回答
1055 浏览

iphone - 如何滚动到 tableview 行?

我有一个继承自 UITableViewDelegate 和 UIScrollViewDelegate 的 UIViewController(名为 VC)。之前的 UIViewController 加载 VC 是这样的:

这意味着 viewWillAppear 不会触发。我可以在上述行之后添加该方法:

但是它会在 cellForRowAtIndexPath 之前触发,这会在我尝试滚动时导致空的 tableview 引用。

我想在加载 VC 时滚动到表中的特定行。但是因为我不知道 tableview 的 cellForRowAtIndexPath 何时完成(缺少 viewWillAppear),所以我没有任何地方可以放置滚动代码。我已经保留了对 tableview 的引用,并且可以将其用于滚动。但是我在哪里可以放置滚动代码?

0 投票
1 回答
1290 浏览

iphone - 有没有办法实现两个tableview的并行滚动?

比方说,我在滚动视图中有两个表格视图。在我向上和向下滚动 tableview1,然后触摸并滑动以将滚动视图水平滚动到 tableview2 后,我希望 tableview2 具有与 tableview1 相同的垂直(向上和向下)位置。有没有办法做到这一点?谢谢