我已經看到了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