2013-08-21 5 views
1

У меня есть представление в прокрутке, и когда я прокручиваю (отталкиваю) от этого ViewController до CommentViewController и возвращаюсь, просмотр в прокрутке просматривается на 200 пикселей вверх, я не знаю, почему, я не знаю `ничего в коде.Прокрутка с помощью автоматической компоновки

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

Его использование при автоматическом макете. Когда это происходит, его работа, но дизайн не впечатляет ... Могу ли я исправить это с помощью автоматической компоновки?

+0

образец Вероятно, связанные с этой ошибкой: http://stackoverflow.com/questions/18048514/shifting-view-after-displaying-modal-possibly-autolayout-related Попробуйте добавить ограничения, которые компоновают представления внутри вашего scrollview в представлении scrollview. –

ответ

0

Вот быстрое решение

В viewWillDisappear, сохранить contentOffset в Scrollview и сбросить его к нулю.
Позже в 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; 
} 
Смежные вопросы