2013-11-25 2 views
1

У меня есть tableViewController с динамическим UIView внутри него, где изменяется положение слоя, так что оно остается под строкой состояния. Я сделал то же самое с обычным контроллером View с UIScrollView.CALayer не меняет позицию в UIScrollview

Если «banner status» в tableViewController делает то, что он предположил, баннер статуса в viewController этого не делает.

Положение строки состояния изменено в методе viewDidScroll внутри каждого контроллера представления.

Почему баннер во втором контроллере не перемещается?

Вот код, это то же самое в обоих контроллерах зрения:

-(void)scrollViewDidScroll: (UIScrollView*)scrollView 
{ 

    CALayer *layer = _statusBanner.layer; 
    float scrollOffset = scrollView.contentOffset.y; 
    if (scrollOffset > 10) 
    { 
     [[self navigationController] setNavigationBarHidden:YES animated:YES ]; 
     [_statusBanner setHidden:NO]; 
     layer.position = CGPointMake(layer.position.x, scrollOffset + 10); 

    } 
    else { 
     [[self navigationController] setNavigationBarHidden:NO animated:YES ]; 
     [_statusBanner setHidden:YES]; 

    } 
} 
+0

Вы разрабатываете для iOS6 или 7? – Woodstock

+0

Я разрабатываю для iOS7 – Jargen89

+0

Можете ли вы иметь свой вид сверху контроллера табличного представления, а не внутри него? Тогда он будет всегда оставаться в одном месте при прокрутке стола. – Macondo2Seattle

ответ

0

я понял, обходной путь с этим вопросом. Я решил оставить statusBanner из scrollView viewController. Баннер и scrollview оба обернуты в первичный UIView viewController, и баннер размещается чуть выше scrollView.

Я искал слишком сложную задачу, чтобы увидеть самое простое решение.

Смежные вопросы