我的情况类似于这两个帖子(1907297和689684)并且最简洁地描述我的情况,我提出了这个文本/图形布局(类似于你在IB中看到的,用于强制缩进级别的点)
UIView(MainView:320x460)
..UIScrollView(ScrollView:320x460)
..UIView(OverlayView:320x40)
....UIButton(ArbitraryButton1)
....UILabel(ArbitraryLabel1)
....UILabel(ArbitraryLabel2)
这里的目标是让OverlayView作为一个统一的透明容器来定位和显示ScrollView顶部的一些任意按钮/标签.这些按钮/标签应保持静止,而下方ScrollView中的内容随用户滑动一起移动.按钮/标签有时可以一致地隐藏/取消隐藏/缩放(使用动画),这使得将它们全部分组到单个OverlayView中变得非常方便.
麻烦的是,虽然OverlayView上的点击似乎很好地传递到底层的ScrollView,但是滑动动作没有任何效果.我可以通过覆盖来检测/拦截滑动
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
Run Code Online (Sandbox Code Playgroud)
OverlayView中的方法,但是我还没有找到一种方法将它们正确地传递给ScrollView,使其滚动.显然,touchesMoved方法不是UIScrollView用来检测/解释滑动的方法吗?
我研究过的所有其他类似帖子都找到了一个不同的解决方案,在我的情况下不起作用或者刚刚解决.我也看到过提到使用touchesShouldBegin/touchesShouldCancel虽然我不知道如何实现.无论如何,仍然希望社区有一些洞察力可以让我为此提出一个优雅的解决方案 - 任何示例代码都会很棒.
在此先感谢,乔尔.
PS - 我还应该提一下,我需要让它与iOS 3.0兼容,所以我认为尝试使用UIGestureRecognizers已经出局了.