2009-10-20 99 views
35

我一直在很難找到UIScrollView的好例子。即使蘋果的UIScrollView套件,我覺得有點欠缺。學習UIScrollView的基礎知識

我正在尋找一個教程或示例集展示我如何創建一個類似於iPhone的Safari瀏覽器選項卡滾動的東西,當你從一個瀏覽器窗口縮小,可以拂去他人。

但我有一個很難剛開滾動視圖中顯示任何舊觀點。我有一個視圖,其中包含一個圖像,但是當我將它添加到滾動視圖中時,無論我添加的視圖中是什麼,我都只會看到一個黑色的矩形。

任何鏈接或代碼段將是巨大的!

+0

你能解釋一下你的意思通過iPhone Safari選項卡滾動?那是在你點擊右下角的頁面按鈕之後,然後你得到一個UIPageControl,讓你滑動到其他瀏覽器窗口? – mahboudz 2009-10-21 04:46:54

回答

46

這裏是一個scroll view guide from Apple

的基本步驟是:

  1. 創建要放到裏面(在你的情況下,UIImageView)一UIScrollView和內容視圖。
  2. 使內容視圖成爲滾動視圖的子視圖。
  3. 將滾動視圖的內容大小設置爲內容視圖的框架大小。 這是人們經常省略的非常重要的一步。
  4. 將滾動視圖放置在某個窗口中。

至於分頁行爲,請查看UIScrollView的pagingEnabled屬性。如果你需要滾動不到整頁,你需要玩clipsToBounds的技巧,這與this StackOverflow question中發生的事情相反。

+0

編輯:發現我的問題在這裏:http://stackoverflow.com/questions/1135163/how-do-i-use-uiscrollview-in-interface-builder - 可悲的答案是「不,蘋果忘記啓用它」 。原文評論:在Interface Builder中有沒有辦法做到上面的STEP 3?我一直在做代碼,無法在IB中找到方法。這很奇怪 - 基本上,如果你想讓UIScrollView實際工作,Apple似乎迫使你編寫代碼? – Adam 2010-02-21 16:39:11

+3

快速提示:該示例的鏈接不再有效,現在正重定向到各種垃圾郵件網站。 – 2013-07-18 02:43:30

+2

第3步:要設置內容大小,請在'viewDidAppear'方法中添加'[self.scrollView setContentSize:CGSizeMake(contentView width,contentView height)];'。 – jithin 2015-11-29 06:38:42

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

NSInteger viewcount= 4; 
for (int i = 0; i <viewcount; i++) 
{ 
CGFloat y = i * self.view.frame.size.height; 
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, y,self.view.frame.size.width, self .view.frame.size.height)];  
view.backgroundColor = [UIColor greenColor]; 
[scrollview addSubview:view]; 
[view release]; 
} 
scrollview.contentSize = CGSizeMake(self.view.frame.size.width, self.view.frame.size.height *viewcount); 

欲瞭解更多信息Create UIScrollView programmatically

+0

「CGFloat y = i * self.view.frame.size.height;」給所有迭代賦予0。 – 2015-04-26 02:45:34