2013-11-25 50 views
1

我有一個tableViewController裏面有一個動態UIView,它的圖層位置發生變化,所以它保持在狀態欄的下面。我使用UIScrollView對普通的View控制器做了同樣的事情。CALayer沒有改變UIScrollview的位置

其中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從viewController的scrollView中移出。橫幅和滾動視圖都包裝在viewController的主UIView中,橫幅放在scrollView的上方。

我一直在尋找最簡單的解決方案。