如何将父 View 的滑动事件传递给它的子 View?

2017-07-27 19:40:46 +08:00
 kuoruan
一个 UIView 里边有个 UIScrollView,scrollview 小于父 View,现在想要在父 View 的空白区域上下滑动的时候能将滑动传递给 scrollview,以使 scrollview 滚动。
滑动事件不在 scrollview 上,这种情况应该如何处理?
4431 次点击
所在节点    iDev
8 条回复
f19009
2017-07-27 21:51:58 +08:00
可以修改 hitTest
yautou
2017-07-27 22:36:27 +08:00
简单点,滑动的时候设置 scrollview 的 offset 就行了呀
cubesugar
2017-07-28 00:01:12 +08:00
给 scrollview 的 content 设置 margin,不知是不是一种满足要求的方案,margin 的大小就是 空白区域的大小。app 里一些 profile 页面有这样处理过
kuoruan
2017-07-28 09:52:36 +08:00
@yautou 估计也就只能这样处理了,感谢
SnailLin
2017-07-28 10:48:16 +08:00
加个手势
或者重写 func point(inside point: CGPoint, with event: UIEvent?) -> Bool 扩大响应面积
方法应该还是很多的
kuoruan
2017-07-28 11:09:08 +08:00
@f19009 刚才看了一下 hitTest,貌似可以实现,是不是需要将 UIView 上的 ponit 转化到 scrollview 上?然后调用 scrollview 的 hitTest?
Sapp
2017-07-28 11:28:19 +08:00
最简单的就是 父元素触发事件的时候获取 offsetTop 同时设置为子元素的 offsetTop。
zichen0422
2017-07-29 10:45:49 +08:00
1, 手势处理, UIView 方向滑动. 识别即可
2, touch begin / touch end 识别滑动也可

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/378436

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX