我有一个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];
}
}
答案 0 :(得分:0)
我想到了解决这个问题的方法。我决定将statusBanner从viewController的scrollView中删除。横幅和scrollview都包含在viewController的主要UIView中,横幅放在scrollView上方。
我一直在努力解决这个问题,看看最简单的解决方案。