2011-12-14 165 views
2

我一直在尋找如何使UIScrollview包裝(循環)的滾動菜單。 我檢查了這個question,這個例子有效,也許這是一個好方法。設置UIscrollView頁面大小

但不是隻顯示一個頁面(圖片)我需要顯示3頁,並能夠在一次滾動一頁。

那麼我怎樣才能設置UIScrollView頁面尺寸比框架小1/3(我認爲這樣它會工作)?

是否可以實現?如果不是,請告訴我去另一個方向

感謝

+1

其完成的;) 我如何關閉問題? – Frade 2011-12-14 17:16:23

+0

謝謝莎拉..併爲錯誤感到遺憾..;) – Frade 2012-01-11 18:55:36

+0

那麼你是如何解決這個問題的?您正試圖使其頁面向右分頁,例如,左側顯示的前一個屏幕的1/3是正確的?如果你發現如何縮小每一頁,我很想知道如何,謝謝。 – Ryan 2012-04-17 18:46:45

回答

1

過了一段時間,我最終需要再次解決這個問題。

我找到了適合我的解決方案。

檢查this answer

  1. 更改您的滾動視圖大小,你想
  2. 設置頁面大小的scroll.clipsToBounds = NO
  3. 創建UIView子類(如HackClipView)和覆蓋則hitTest:withEvent:方法方法

    -(UIView *) hitTest:(CGPoint) point withEvent:(UIEvent *)event 
    {  
        UIView* child = [super hitTest:point withEvent:event]; 
        if (child == self && self.subviews.count > 0) 
        { 
         return self.subviews[0]; 
        } 
        return child; 
    } 
    
  4. HackClipView.clipsToBounds = YES

  5. 把你的滾動視圖在此HackClipView(你想要的總的滾動大小)

更多細節

this answer

更新: 正如盧修斯回答,你可以說現在執行UIScollViewDelegate協議並使用- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset方法。由於targetContentOffset是一個指針。使用這種方法並不能保證用戶可以同時滾動瀏覽多個頁面,而使用滾動視圖頁面獲得相同的結果。但設置descelerationRatefast幾乎給你同樣的結果

1
  1. [theScrollView setFrame:<a frame>];將設置滾動視圖
  2. [theScrollView setContentSize:<a Size>];的框架設置滾動視圖

大小的內容大小在1.應該是在2設置的大小的三分之一。

5

我相信你在說的是有前面的一部分頁面和下一頁的一部分可見。這樣做的方法是將滾動視圖的框架設置爲您想要的(例如,小於屏幕),然後關閉滾動視圖的子視圖剪輯。這將達到你以後的效果。