2013-02-05 52 views
0

我想在IB中構建一個大視圖,然後將其添加到我的滾動視圖中。爲此,我已遵循these instructions當我添加我的視圖時,UIScrollView不會滾動

我的視圖在滾動視圖中正確繪製,但無法滾動。我記錄的內容大小和它的正確:Content view size: 320.000000 x 714.000000

當我 [self.view addSubview:[[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 1)]];滾動視圖是取代[self.view addSubview:self.contentView];,符合市場預期,空的,但至少滾動條顯示,我可以滾動。我的視圖在nib文件中有什麼問題嗎?

這裏是我的viewDidLoad

[super viewDidLoad]; 
[self.navigationController setToolbarHidden:YES animated:YES]; 

NSLog(
    @"Content view size: %f x %f", 
    _contentView.frame.size.width, 
    _contentView.frame.size.height); 
[self.view addSubview:self.contentView]; 
((UIScrollView *)self.view).contentSize = self.contentView.frame.size; 

在我的代碼的唯一區別是,我有一個導航控制器內的滾動視圖。這有什麼區別嗎?

+0

你可以在IB中滾動嗎?你也可以在代碼 – JSA986

回答

1

問題是4個點,這表示「文件的所有者的觀點出口設置爲滾動視圖」。而不是它在你的頭文件中設置scrollview的出口。 而改變代碼viewDidLoad中的是這樣的:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    [scrollview addSubview:self.contentView]; 
    scrollview.contentSize = self.contentView.frame.size; 
} 

那麼它的完美的工作。

+0

嗨,什麼視圖應該是文件的所有者視圖插座?沒有它不會加載...感謝您的幫助! – Dafen

+0

你不必設置它,或者如果你想設置我們的主視圖,其中包含scrollview將其設置爲主視圖,我已經運行它,它的工作完美。 – Dilip

+0

嘿,沒有出口設置,應用程序崩潰與此錯誤:終止應用程序由於未捕獲的異常'NSInternalInconsistencyException',原因:' - [UIViewController _loadViewFromNibNamed:bundle:]加載了「NameDetailViewController」筆尖,但沒有設置視圖插座。 「 – Dafen

0

它應該像下面

//Considering self.contentView as UIScrollView added in xib 
UIView *view=[[UIView alloc] initWithFrame:CGRectMake(0,0,320,700)]; 
[self.contentView addSubView:view]; 
[self.contentView setContentSize:CGSizeMake(320,700)]; 

上面的代碼應該肯定的工作..

+0

嗨!是的,這是有效的,但我怎麼加載視圖的內容在我的筆尖文件到我添加到滾動視圖的視圖?這裏我只是添加一個空視圖,對吧? – Dafen

+0

你甚至可以使用xib和創建UIView組件連接IBOutlet,然後設計UIView,而不是[self.contentView addSubView:view];你做[self.contentView addSubView:self.viewFromOutlet];所有的組件將被添加到實際的視圖.. – iphonic

+0

我認爲這是我以前做過的。 Nib文件包含兩個視圖,一個空滾動視圖和一個包含我所有按鈕和內容的視圖。它的方式,第二個視圖加載到滾動視圖(巫婆連接到文件所有者視圖出口)。所以顯示的內容,但我不能滾動它。我希望我沒有誤解你的意思。 – Dafen

相關問題