注意:我已经阅读了一些关于UIScrollView
发送触摸到子视图的问题(这包括,虽然我已经投票了,但它不再像我预期的那样工作了)。
我所拥有的:我有UIScrollView
一个 Custom UIView
(我们称之为A),里面覆盖了整个UIScrollView
. 我也可以UIViews
在A中放置其他自定义。
在我这样做的代码上:
[scrollView setDelaysContentTouches:YES];
scrollView.canCancelContentTouches = NO;
发生了什么:目前我唯一的问题是,如果我想在A中移动子视图,我必须触摸它,等待,然后再移动它。正是如此处所述:
现在,行为会根据第一次触摸 UIView 的“时间长度”而改变。如果它很短,则管理相对拖动,因为它是 UIScrollView 的滚动。如果它很长,那么我会在我的 UIView 中得到 touchesMoved: 事件。
我想要什么:A中的子视图应该始终获得优先级,我不应该触摸和等待。如果我触摸A而不是它的子视图,我希望UIScrollView
接收触摸,例如平移和移动(contentSize
大于frame
)。
编辑 1.0
我在泛型中拥有这个AUIScrollView
视图的唯一原因是因为我希望能够放大/缩小A视图。所以我正在做以下事情:
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
return customView; // this is the A view
}
一开始我没有A视图,UIScrollView
我唯一做的就是将A添加为我的UIViewController's
根视图的子视图,一切都很顺利。如果有另一种启用放大/缩小的方法,我将很乐意接受答案。