2013-08-21 267 views
1

我有一個視圖滾動視圖,當我從這個ViewController seque(push)到CommentViewController,並且回來時,滾動視圖中的視圖移動了200px,我不知道爲什麼,我不知道代碼中沒有任何東西。滾動視圖與自動佈局

-(void)viewDidAppear:(BOOL)animated 
{ 
    [super viewDidAppear:animated]; 
    [scroller setScrollEnabled:YES]; 
    [scroller setContentSize:CGSizeMake(320, 2000)]; 
} 

當Auto Layout打開時,當它關閉,它的工作,但設計並不令人印象深刻...... 我可以使用自動佈局修復它嗎?

+0

可能與此錯誤:http://stackoverflow.com/questions/18048514/shifting-view-after-displaying-modal-possibly-autolayout-related嘗試添加相反,將scrollview中的視圖佈局爲scrollview的超級視圖的約束條件。 –

回答

0

這裏有一個快速修復

在viewWillDisappear,節省了滾動的contentOffset並重置爲零。
稍後在viewDidLayoutSubview中,將contentOffset恢復爲舊值。

這裏的示例代碼

-(void) viewDidLayoutSubviews 
{ 
[super viewDidLayoutSubviews]; 
if(!CGPointEqualToPoint(CGPointZero, self.contentOffset)) 
{ 
    scroller.contentOffset = self.contentOffset; 
    self.contentOffset = CGPointZero; 
} 
} 


-(void) viewWillDisappear:(BOOL)animated 
{ 
[super viewWillDisappear:animated]; 
self.contentOffset = scroller.contentOffset; 
scroller.contentOffset = CGPointZero; 
}