CALayer不会更改UIScrollview中的位置

时间:2013-11-25 21:11:51

标签: ios objective-c uiscrollview calayer

我有一个tableViewController,里面有动态UIView,它的图层位置会发生变化,因此它会保留在状态栏下面。我对使用UIScrollView的常规View控制器做了同样的事情。

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];

    }
}

1 个答案:

答案 0 :(得分:0)

我想到了解决这个问题的方法。我决定将statusBanner从viewController的scrollView中删除。横幅和scrollview都包含在viewController的主要UIView中,横幅放在scrollView上方。

我一直在努力解决这个问题,看看最简单的解决方案。