我一直在尋找如何使UIScrollview包裝(循環)的滾動菜單。 我檢查了這個question,這個例子有效,也許這是一個好方法。設置UIscrollView頁面大小
但不是隻顯示一個頁面(圖片)我需要顯示3頁,並能夠在一次滾動一頁。
那麼我怎樣才能設置UIScrollView頁面尺寸比框架小1/3(我認爲這樣它會工作)?
是否可以實現?如果不是,請告訴我去另一個方向
感謝
我一直在尋找如何使UIScrollview包裝(循環)的滾動菜單。 我檢查了這個question,這個例子有效,也許這是一個好方法。設置UIscrollView頁面大小
但不是隻顯示一個頁面(圖片)我需要顯示3頁,並能夠在一次滾動一頁。
那麼我怎樣才能設置UIScrollView頁面尺寸比框架小1/3(我認爲這樣它會工作)?
是否可以實現?如果不是,請告訴我去另一個方向
感謝
過了一段時間,我最終需要再次解決這個問題。
我找到了適合我的解決方案。
檢查this answer:
- 更改您的滾動視圖大小,你想
- 設置頁面大小的
scroll.clipsToBounds = NO
創建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; }
將
HackClipView.clipsToBounds = YES
- 把你的滾動視圖在此HackClipView(你想要的總的滾動大小)
更多細節
見 this answer更新: 正如盧修斯回答,你可以說現在執行
UIScollViewDelegate
協議並使用- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset
方法。由於targetContentOffset
是一個指針。使用這種方法並不能保證用戶可以同時滾動瀏覽多個頁面,而使用滾動視圖頁面獲得相同的結果。但設置descelerationRate
到fast
將幾乎給你同樣的結果
[theScrollView setFrame:<a frame>];
將設置滾動視圖[theScrollView setContentSize:<a Size>];
的框架設置滾動視圖大小的內容大小在1.應該是在2設置的大小的三分之一。
我相信你在說的是有前面的一部分頁面和下一頁的一部分可見。這樣做的方法是將滾動視圖的框架設置爲您想要的(例如,小於屏幕),然後關閉滾動視圖的子視圖剪輯。這將達到你以後的效果。
其完成的;) 我如何關閉問題? – Frade 2011-12-14 17:16:23
謝謝莎拉..併爲錯誤感到遺憾..;) – Frade 2012-01-11 18:55:36
那麼你是如何解決這個問題的?您正試圖使其頁面向右分頁,例如,左側顯示的前一個屏幕的1/3是正確的?如果你發現如何縮小每一頁,我很想知道如何,謝謝。 – Ryan 2012-04-17 18:46:45