2013-08-21 204 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; 
}