我已经看到了stackoverflow,但无法找到完全回答我的问题的答案。如果我错过了某些东西,请将我指向正确的问题。UIScrollView通过触摸垂直滚动并以编程方式水平方向
这里是我的方案 -
我本来在我的垂直窗口大小设置的情况下,所以很容易对我来说,完全限制滚动简单地这样做 -
CGRect scrollContainer = CGRectMake(0, 0, 320, 440);
self.baseView = [[UIScrollView alloc] initWithFrame:scrollContainer];
self.baseView.contentSize = CGSizeMake(6400, 440);
self.baseView.bounces = NO;
self.baseView.pagingEnabled = NO;
self.baseView.scrollEnabled = NO;
基于手机的移动,当时我能够以编程方式滚动 -
CGPoint scrollOffset = CGPointMake(x*20, 0);
[self.baseView setContentOffset:scrollOffset];
在我的新的要求,垂直含量急剧增加,所以我会甲肝E中的contentSize像这样
self.baseView.contentSize = CGSizeMake(6400, 4400);
我还是要编程水平滚动,但给用户通过触摸ONLY垂直滚动的能力。所以,我假设我必须说scrollEnabled = YES。但是这可以让用户在两个方向上滚动。
我是否必须捕获触摸事件并覆盖它们?我如何识别它是一个水平滚动还是一个垂直滚动?如果它的对角滚动操作会发生什么?
在这一点上,我有点无知,所以任何输入将不胜感激。
我不知道我明白。如果我想垂直滚动,其中一个滚动视图的内容大小必须大于屏幕大小,对吗?这是内在的滚动视图还是外部? – Kal 2011-06-13 13:32:40
我会在今晚试试这个,并提供反馈。欣赏答案。 innerscrollview =禁用滚动的整个内容大小。 outerscrollview.width =屏幕宽度..将innnerscrollview添加到outerscrollview并为outerscrollview启用屏幕交互。这听起来是对的吗? – Kal 2011-06-13 13:35:59
@Kal内部scrollView也只有屏幕宽度宽度,但其contentSize是完整的contentSize。它的高度是contentSize.height。因此,支持触摸的外部滚动视图会滚动*整个内部scrollView *(它具有contentSize = innerScrollView.size),并且您可以从代码中控制内部scrollView的水平contentOffset,因为用户没有机会改变它。 – fzwo 2011-06-13 13:44:52