2014-09-25 218 views
0

我最近開始使用iOS 8創建一個新項目,我一直在用UIScrollView嘗試一些東西,所以我創建了一個新的單個視圖項目,將scrollview添加到主要的Storyboard ,添加了視圖並增加了內容大小,但是,滾動視圖不滾動整個內容大小。該代碼是這樣:iOS 8 UIScrollView與內容大小不匹配

- (void)viewDidLoad 
{ 
[super viewDidLoad]; 
UIViewController* controllerA = [[UIViewController alloc] init]; 
[[controllerA view] setBackgroundColor:[UIColor blueColor]]; 
[[controllerA view] setBounds:[[self view] bounds]]; 

[_comicScrollView addSubview:[controllerA view]]; 

[_comicScrollView setContentSize:CGSizeMake(640, 480)]; 

// Do any additional setup after loading the view, typically from a nib. 
} 

而且是最後的地步滾動視圖停止: http://imgur.com/ZYlE6yK

+0

您可以檢查scrollView的幀嗎? '的NSLog(@ 「%@」,NSStringFromCGRect(_comicScrollView.frame));' – streem 2014-09-25 15:28:54

回答

0

問題是你要設置的內容大小viewDidLoad中直接硬編碼。如果您只是旋轉設備,那將會破壞。

解決方案覆蓋

- viewDidLayoutSubviews 
{ 
    [super viewDidLayoutSubviews]; 
    CGRect boundsOfSelf = self.view.bounds; 
    _comicScrollView.frame = boundsOfSelf; 
    [_comicScrollView.frame setContentSize: boundsOfSelf.size]; 
    // also resize your controllerA.view here if needed. 
} 

在viewDidLoad中難道沒有設置幀。在viewController生命週期中,它們不會適應任何事情。 PhoneStatusBar,方向更改等。此方法也適用於所有手機和打印機:)