将滑动触摸从 UIView 传递到底层 UIScrollView 以实现正确滚动

2024-01-26

我的情况与这两篇文章类似(1907297 http://www.stackoverflow.com/questions/1907297 AND 689684 http://www.stackoverflow.com/questions/689684)并为了最简洁地描述我的情况,我展示了这个文本/图形布局(类似于您在 IB 中看到的,用于强制缩进级别的点)

UIView(主视图:320x460)
。 .UIScrollView(滚动视图:320x460)
。 .UIView(OverlayView:320x40)
。 。 。 .UIButton(任意按钮1)
。 。 。 .UILabel(任意标签1)
。 。 。 .UILabel(任意标签2)

这里的目标是让 OverlayView 作为一个统一的、透明的容器来在 ScrollView 顶部定位和显示一些任意按钮/标签。这些按钮/标签应保持静止,而下方 ScrollView 中的内容随着用户滑动而移动。按钮/标签有时可能会统一隐藏/取消隐藏/缩放(使用动画),这使得将它们全部分组在单个 OverlayView 中变得很方便。

问题在于,虽然 OverlayView 上的点击似乎可以很好地直接传输到底层 ScrollView,但滑动动作却没有任何效果。我可以通过覆盖来检测/拦截滑动

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event

OverlayView 中的方法,但是我还没有找到一种方法以使其滚动的方式正确地将它们传递给 ScrollView。显然,touchesMoved 方法不是 UIScrollView 用于检测/解释滑动的方法?

我研究过的所有其他类似帖子要么找到了对我的情况不起作用的不同解决方案,要么只是没有解决。我还看到提到使用touchesShouldBegin/touchesShouldCancel,尽管我不明白这是如何实现的。无论如何,仍然希望社区有一些见解可以让我为此提出一个优雅的解决方案 - 任何示例代码都很棒。

预先感谢,乔尔。

附: - 我还应该提到,我需要使其与 iOS 3.0 兼容,所以我认为尝试使用 UIGestureRecognizers 已经过时了。


这是一个对我来说效果很好的更简单的解决方案:

在 OverlayView(UIScrollView 顶部的视图)中,将宽度和高度设置为 0(以便该视图在技术上不再位于滚动视图顶部)并设置 ClipsToBounds = NO(以便 OverlayView 的内容仍然显示)在滚动视图的顶部)。它对我来说就像一种魅力。

 self.OverlayView.clipsToBounds = NO;
 CGRect frame = self.OverlayView.frame;
 self.OverlayView.frame = CGRectMake(frame.origin.x, frame.origin.y, 0, 0);

请注意,如果 OverlayView 包含交互式控件(如上面的按钮),那么它们将不再起作用。您需要将其移动到 UIScrollView 上方它自己的视图中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将滑动触摸从 UIView 传递到底层 UIScrollView 以实现正确滚动 的相关文章

  • 如何重写[]数组中的ToString()?

    比如说 如果我需要覆盖ToString自定义中的方法List 我会这样做 public class WebUILanguage2 List
  • Java OS X Lion 关于菜单

    我正在尝试覆盖 OS X Lion 上的 Java 应用程序或 Leopard 及以上版本中的任何内容中的 关于 菜单 我怎么做 到目前为止 我读过的教程似乎不是最新的 一些类不再在 Java Mac SDK 中 其他类的事件也没有被触发
  • 水平滚动 UICollectionView 时捕捉到单元格的中心

    我知道有些人以前问过这个问题 但他们都是关于UITableViews or UIScrollViews我无法得到适合我的可接受的解决方案 我想要的是滚动浏览时的捕捉效果UICollectionView水平 很像 iOS AppStore 中
  • 如何让iOS 7下的UISwitch不采用其后面视图的背景颜色?

    关闭时看起来像这样 虽然我更喜欢灰色背景 我真的必须使用 UIImageView 吗 以下是我更改 iOS7 UISwitch 的填充颜色的方法 首先您需要导入 QuartzCore import
  • UIView的setNeedsLayout、layoutIfNeeded和layoutSubviews之间有什么关系?

    谁能对两者之间的关系给出明确的解释UIView s setNeedsLayout layoutIfNeeded and layoutSubviews方法 以及一个使用所有三个的示例实现 谢谢 让我感到困惑的是 如果我将自定义视图发送给set
  • 使用主题函数在 body 标记后插入代码

    我试图在开头添加一段代码everyDrupal 站点中的页面 因为我有不止一个page模板 我想以编程方式执行此操作 但没有成功 我还是个新手 虽然我了解了钩子 主题函数等的要点 但我只是想不出实现这一目标的正确方法 到目前为止我已经覆盖了
  • 如何仅为自定义类型覆盖模板“folder_full_view_item.pt”?

    这个问题的演变方式令人困惑 不过 它的某些部分 特别是一些答案 可能对某人有用 因此 我将不修改这个问题 并尝试重新表述这个问题here https stackoverflow com q 23809810 1659599 覆盖模板fold
  • iOS:UIScrollView 检测滑动手势

    我有一个 UIScrollView 它通过使用计时器自动滚动 每 3 秒滚动到下一页 类似于幻灯片 现在我想实现一个检测任何用户交互的函数 一旦用户与滚动视图交互就取消计时器 以便他可以自己滚动滚动视图 最好的方法是什么 ScrollVie
  • 如何制作水平滚动视图和其中的一些按钮(编程)

    抱歉 我有一个问题 我不使用 StoryBoard 我想做一个这样的视图 照片由 terence Luffy AppStore 拍摄 风格 Horizo ntalScrollView https camo githubusercontent
  • 如何设置itemTouchHelper选择性滑动?

    所以我在 recyclerview rv 上实现了这个 itemtouchhelper simple 回调 现在 在这个 rv 中 我根据内容类型将 2 种布局设置为一行 因此 当我在 rv 上设置此 touchhelper 时 它正在这两
  • 未调用 C++ 重写函数

    我遇到了一个问题 即未调用重载函数 而是调用了基函数 我怀疑这与项目文件之间的划分方式有关 在文件 obj1 h obj1 cpp 中我有这样的东西 class obj1 public void print void obj1 print
  • 当将 contentMode 设置为 UIViewContentModeScaleAspectFit 时,如何设置 UIImageView 左对齐或右对齐?

    我想在使用时控制图像对齐UIViewContentModeScaleAspectFit in UIImageView 例如 我有两个UIImageView在上述的一个视图中 这两个UIImageView的内容模式是UIViewContent
  • UIView 内的 UIButton 目标操作

    我有一个习惯UIView我创建了一个UIButton 在该视图中 我有以下代码 func setupViews menuControlButton addTarget self action toggleButton forControlE
  • 如何在 UI 视图上显示两个表

    我想在 UI 视图上使用和显示两个表 请让我知道如何执行此操作 任何相同的代码也将受到赞赏 谢谢 桑迪普 将 2 个 UITableView 添加到 IB 中的视图中 并将它们连接到文件所有者中的 2 个不同的出口 或者简单地分配不同的标签
  • 将滚动事件从 uibutton 传递到 uiscrollview

    我有水平的UIScrollView这是从UIScrollView我添加了UIButtons水平地 我只能滚动到按钮区域之外 但如果我想滚动到任何按钮就会触发UIControlEventTouchUpInside事件 我不想要这个 我想开火U
  • 如何将CIFilter应用到UIView上?

    根据Apple docs 过滤属性CALayer不支持iOS 当我使用正在申请的应用程序之一时CIFilter to UIView即 Splice Funimate 和 Artisto 的视频编辑器 Videoshow FX 这意味着我们可
  • “同时创建 xib 文件”按钮已禁用

    我在创建时遇到这个问题UIView s子类 创建 例如 UIViewControllers or UITableViewCells没关系 为什么会出现这种情况 I create view using cmd N and Xcode Vers
  • 玻璃效果 UIView

    我想知道如何在 UIView 上添加玻璃效果 我想像这样的效果 http pttrns com pickers detail 0dc9d9f6c6a7577613b3453768eee3b3在灰色半透明视图上 您 可以在这里看到 Thank
  • 重置转换后的 UIView 的原点会变得疯狂

    我使用 UIView transform 旋转 缩放 UIVIew 效果很好 然而 一旦我更改视图的框架原点 即使我没有执行任何进一步的 CGAffineTransforms 视图的内容也会开始 奇怪 地缩放 为什么会出现这种情况 我该如何
  • 覆盖并重置 CSS 样式:auto 或 none 不起作用

    我想覆盖为所有表定义的以下 CSS 样式 table font size 12px width 100 min width 400px display inline table 我有一个特定的表 其类名为 other 最后的餐桌装饰应该是这

随机推荐

  • 让 collat​​z 程序自动完成无聊的事情

    我正在尝试使用 用 Python 自动化无聊的东西 第 3 章末尾找到的项目指南来编写 Collat z 程序 我正在使用Python3 4 0 以下是项目概要 编写一个名为collatz 它有一个名为 number 的参数 如果数字是偶数

  • 标签语义替代用法

    嗯 我知道是没有语义的 问题是当有这样的段落时 朋友你好 今天我学到了一个新技巧 但我不会告诉你 然而 好吧 我只是开玩笑 Lorem ipsum dolor sat amet consectetur 脂肪精英 朗克斯在麦格纳 Nulla
  • Raven.Client.Exceptions.Database.DatabaseDoesNotExistException:'数据库'*****'不存在

    我在用RavenTestDriver对于我的 net core 单元测试 这是我的配置RavenTestDriver在我的单元测试解决方案中 public class TestHostBuilder RavenTestDriver IAsy
  • SQL1159 DB2 .NET 数据提供程序初始化错误,原因代码 2

    我正在尝试从运行 Windows 7 64 位的开发机器中的 NET 2 0 应用程序连接到 DB2 我在 open 方法中收到此错误 无法找到解决方案 异常类型 InvalidOperationException ExceptionMes
  • 在 OpenCV 中将较小的图像叠加在较大的图像中

    我想用 Opencv 中的图像替换图像的一部分 I used cvGetPerspectiveMatrix with a warpmatrix and using cvAnd and cvOr 但无法让它发挥作用 这是当前显示图像和替换图像
  • 浏览器不请求 favicon.ico 的原因有哪些?

    我正在编写一个位于服务器根目录的简单网页 其快捷方式图标位于 favicon ico 但我的浏览器从不请求此 favicon ico 我在 html 中包含了以下内容 当我打开开发人员工具的网络选项卡时 我看到对 192 168 0 1 网
  • 使用 group_by 的简单 Rails 3.1 视图

    我正在工作的网站上有一个菜单 食物菜单 表中的每条记录还包含一个类别字段 此类别可以是汉堡 零食 饮料或他们想要对食品进行分类的任何其他内容 我正在尝试显示菜单 其中的项目按此类别字段分组 到目前为止我的尝试 food item menus
  • RESTEasy 无法识别自定义消息正文编写器

    我的MessageBodyWriter Provider Produces text csv public class CSVMessageBodyWriter implements MessageBodyWriter
  • .NET Core Web API 5.0 构建错误

    严重性代码 说明 项目文件行抑制状态 错误 NETSDK1005 资产文件 D Working On Gra Gra obj project assets json 没有 NETCoreApp Version v5 0 的目标 确保恢复已运
  • 列依赖于其他列值

    我有一列将具有三个可能的值 稍后可能会更多 我将其存储为枚举 yes immediately yes later no 如果选择yes later制作完成后 我们还需要存储date该事件应该发生 在我看来 这必须是另一篇专栏 我的问题是设计
  • 作为收件人,是否可以检测电子邮件是通过 Gmail“安排发送”还是“发送”发送的?

    只是好奇 Gmail 是否对电子邮件标头进行了标记 以指示电子邮件是已安排发送还是立即发送 当我自己测试时 我找不到任何附加标头或标头中的任何附加参数 不过 当您安排电子邮件时 Gmail 会设置Date标题到预定时间 由于您只能以分钟的精
  • 美化C++代码,为条件语句添加括号

    如何美化C 代码 为条件语句添加括号 我需要做的是改变 if myCondition setDateTime date time to if myCondition setDateTime date time 但我必须这样做数百次 我用过A
  • Angularjs 使用 django 的 url 进行路由

    我使用 AngularJS 作为前端 使用 Django 作为后端 我在后端做非常简单的事情 所以我没有考虑使用tastypie 我遇到的问题是客户端 服务器路由 我彻底困惑了 我所做的是 从django渲染entry html页面 其中有
  • 在cmd中重新排列数组元素

    我的批处理文件中有一个数组 如下所示 port 0 port 1 0 port 2 3 port 3 2 是否有任何漂亮而优雅的方法可以将值向后移动一个元素 所以它看起来像这样 port 0 0 port 1 3 port 2 2 port
  • Caffe 运行测试失败

    成功构建 caffe 后 我进行了 runtest 但在 ImageDataLayer DBTest DataTransformTest HDF5OutputLayerTest 和一些求解器中失败 构建 链接到特定路径时是否缺少步骤 这是测
  • Django REST Framework 验证错误:“输入有效的 URL。”

    在我的 Django REST Framework 项目中 我有一个模型类 用于保存 Django 应用程序将在后台任务中抓取的服务 class Service models Model name models CharField max
  • URL 特定编码

    我尝试重新创建 URL 但找不到编码函数 Edit 背景 该字符串用于 API 当然没有文档 我尝试使用原始网址编码但似乎只有原始的编码 解码功能有效 所以我必须找到它是什么 input 2 3 word 888 gt word2 AND
  • CGridView 中的格式化日期过滤器

    我在 CGridView 中将日期显示为 22 6 2012 22 53 array name gt date value gt date j n Y G i strtotime model gt date 但在我的过滤器中 我需要以这种格
  • 如何在 SQL 中从另一个表获取计数?

    我有以下关于 SQL 的表 Mensajes IdMensaje int PK NOT NULL IdCliente int CorreoCliente varchar 100 CorreosAdicionales varchar MAX
  • 将滑动触摸从 UIView 传递到底层 UIScrollView 以实现正确滚动

    我的情况与这两篇文章类似 1907297 http www stackoverflow com questions 1907297 AND 689684 http www stackoverflow com questions 689684