Ios CALayer未更改UIScrollview中的位置

Ios CALayer未更改UIScrollview中的位置,ios,objective-c,uiscrollview,calayer,Ios,Objective C,Uiscrollview,Calayer,我有一个tableViewController,里面有一个动态UIView,它的层位置会发生变化,所以它会停留在状态栏下面。我对带有UIScrollView的常规视图控制器也做了同样的操作 如果tableViewController中的状态横幅执行其假定的操作,则viewController中的状态横幅不执行 在每个视图控制器中,状态栏的位置在viewDidScroll方法中修改 为什么第二个视图控制器中的横幅不移动 以下是代码,在两个视图控制器中都是相同的: -(void)scrollView

我有一个tableViewController,里面有一个动态UIView,它的层位置会发生变化,所以它会停留在状态栏下面。我对带有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];

    }
}

我想出了解决这个问题的办法。我决定将statusBanner保留在viewController的滚动视图之外。横幅和scrollview都包装在viewController的主UIView中,并且横幅放置在scrollview的正上方


我一直在仔细研究这个问题,没有找到最简单的解决方案。

您是为iOS6还是为IOS7开发的?我是为IOS7开发的。您是否可以将视图放在表视图控制器的顶部而不是内部?滚动表格时,它将始终保持在同一位置。问题在于viewController,而不是TableViewController。如果不看到代码,我们无法判断。