2010-06-10 42 views
4

我現在正在製作數字漫畫。 我的應用程序沒有縮放時有水平分頁。 但是,當變焦時,圖片的高度超過屏幕高度。 所以應用程序有垂直分頁。如何在沒有垂直分頁的情況下在UIScrollView中製作水平分頁

但我不需要垂直分頁。 我想在水平尋找期間不進行垂直尋呼進行水平尋呼。

請教我。

+0

可與一個滾動視圖來完成: http://stackoverflow.com/questions/10478586/uiscrollview-paging-in-single-direction/10480071#10480071 – 2012-05-08 08:43:44

回答

-1

從技術上講,沒有垂直分頁這樣的東西,現在只有水平的標準API。上/下滾動,左右分頁有點不同。

在檢查器窗口中選擇uiscrollview並編輯其屬性後,您應該能夠在Interface Builder中禁用垂直滾動。

-1

當用戶放大時,您可以動態地將pagingEnabled設置爲NO,然後在縮小時將其設置回YES

查看docsUIScrollViewDelegate瞭解如何檢測縮放。

+0

謝謝。但這還不夠,因爲在縮放期間我需要水平分頁。我只想關閉垂直分頁。 但我知道我不能關閉垂直分頁。 所以有人告訴我的意見。 他說,它可以使用2 scrollView關閉垂直分頁。 一個是整頁使用pagingEnabled = NO; 另一個只有pagingEnabled = YES的頁面; 但我的示例無法正常工作。 任何人都請幫助我。 – kyoheialfaromeo2010 2010-07-04 14:13:00

13

這很簡單。正如你的朋友建議的,你至少需要兩個UIScrollView。您需要一個UIScrollView用於水平(即尋呼),並且您將需要一個UIScrollView用於每個頁面。其要點是:(讓我們命名他們scrollHorizontalscrollVertical):

  • scrollHorizontal.frame.height必須等於scrollHorizontal.contentSize.height(否則,你將結束與垂直分頁)
  • scrollVertical:第一,你就會有這樣一個每個頁面。框架寬度和contentSize.width應該匹配並且有意義w.r.t.一個頁面的寬度(在你的scrollHorizontal)。當然,您應該將框架高度不超過scrollHorizontal.contentSize.height

示例代碼:

 

UIScrollView scrollHorizontal = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height)]; 

scrollHorizontal.pagingEnabled = YES; 
scrollHorizontal.directionalLockEnabled = YES; // not needed but helpful 

// Now let's create each page 

UIScrollView *scrollPage1 = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height)]; 

[scrollPage1 addSubview:theContentViewForPage1]; 

scrollPage1.contentSize = CGSizeMake(self.view.bounds.size.width, theContentViewForPage1.bounds.size.height); 

// Add page to scrollHorizontal 

[scrollHorizontal addSubview:scrollPage1]; 
[scrollPage1 release]; 

//...add more pages (REMEMBER to set the scroll view's frame.origin.x accordingly for each additional page) 

// Set the scrollHoriztonal content size 
scrollView.contentSize = CGSizeMake(self.view.bounds.size.width*NUMBER_OF_PAGES, self.view.bounds.size.height); 

// Now add the scrollview to self.view; or even self.view = scrollHorizontal, etc. 

+1

完美的答案的人。非常感謝。 – jakeboxer 2011-01-11 16:52:19

+0

我一直在試圖找出類似的東西,這個答案完美地做到了。非常感謝 – Andrew 2011-08-08 02:14:53

相關問題