2013-01-02 39 views
0

我一直在XCode 4.5.2中開發一個項目,並設置了各種uiviews,並尋找我希望他們和所有工作的方式。將uiscrollview添加到現有的uiview - 無法獲取滾動的內容

在一個視圖中,我現在需要添加一個uiscrollview,因爲內容將比頁面大,並且需要垂直滾動。

我加入了一個UIScrollView,並設置內容大小等,在viewDidLoad中

[scrollView setScrollEnabled:(YES)]; 
[scrollView setContentSize:CGSizeMake(320,650)]; 

當我運行這一點,並儘量垂直滾動,我可以看到滾動條出現,所以UIScrollView的工作和滾動,但我已經添加到我的uiview中的所有內容都保持不動。

我曾嘗試以編程方式增加一個小的快速測試圖像滾動視圖

CGRect imageViewFrame = CGRectMake(10,10,10,10); 
UIImageView *imageView = [[UIImageView alloc] initWithFrame:imageViewFrame]; 
imageView.image = [UIImage imageNamed:@"1001_a.jpg"]; 
[scrollView addSubview:imageView]; 

而這個小圖片作品和滾動使用,應滾動視圖,但所有其他以前添加的內容,標籤,圖像,等等,都仍然留在原地,完全不動。

我認爲這是與子視圖有關的事情,而我之前的所有內容都不是scrollview的子視圖 - 但我該如何糾正?

我已經有我的頁面和uiview在界面生成器中進行了佈局,並且不真的想刪除所有內容並以編程方式添加所有內容,就像我對小測試圖像所做的那樣。

在viewdidload中需要做什麼來將現有內容設置爲子視圖到uiscrollview?

[scrollView addSubview:???]; 

非常感謝任何提示或建議提前 - 這是讓我瘋狂!

如果您需要任何截圖或其他代碼,請高興附上。

回答

2

問題是,所有的東西都添加到UIView,而不是scrollview。滾動scrollview只會滾動它的孩子,這就是爲什麼你的測試圖像滾動。如果你用nib構建它,你只需要拖動所有需要滾動的東西在scrollview中,它就可以工作。您也可以將控制器UIView更改爲UIScrollView本身。這是在實用程序的右側欄中的第三個選項卡上,它表示自定義類,將其更改爲UIScrollView。這樣做會失去一些多功能性,但這是最快的方法。

+0

我在Xcode 4.5.2中的接口生成器中構建這個我明白當前內容被添加到uiview而不是scrollview,那是我的想法 - 爲什麼我理解測試圖像工作但現有內容沒有。那麼,如何輕鬆/快速地將現有內容從UI視圖移出/拖入界面構建器中的滾動視圖? – Richard

+0

我剛剛檢查過,並且UIScrollView不是我的界面構建器下拉菜單的自定義類中的選項... – Richard

+0

界面構建器有時不像它那樣聰明。你可以簡單地拖動它,就像你說的那樣。或者你可以添加一個UIScrollView,拖動你的UIView,然後把UIScrollView作爲UIViewController的「視圖」IBOutlet。 –