iOS 7视图控制器布局问题透明/模糊导航栏

tva*_*nt2 3 layout rubymotion ios7

我在iOS 7中使用视图控制器时出现问题.我正在尝试找出在导航栏和状态栏下调整视图布局的最佳方法,同时保持导航栏的透明度/模糊.例如,如果我有一个视图控制器:

def viewDidLoad
  @scroll                      = UIScrollView.alloc.initWithFrame(new_frame)
  @scroll.bounces              = true
  @scroll.delegate             = self
  @scroll.alwaysBounceVertical = true
  @scroll.scrollsToTop         = true
  @scroll.contentSize          = CGSizeMake(UIScreen.mainScreen.bounds.size.width, scroll_frame.size.height)


  self.view.addSubview(@scroll)
end
Run Code Online (Sandbox Code Playgroud)

我的内容显示在导航栏下,我获得了iOS 7过渡指南.要纠正这个问题,如果我在viewDidLoad中添加以下内容:

self.edgesForExtendedLayout = UIRectEdgeNone

布局已调整,但导航栏不再具有透明度或模糊,因为视图不会在其后面延伸.

如果我不调整scrollView insets而不是设置layout的边缘:

self.automaticallyAdjustsScrollViewInsets = false

然后将我的滚动框更改为:

def viewDidLoad
  nav_bar_height = self.navigationController.navigationBar.frame.size.height
  status_height  = UIApplication.sharedApplication.statusBarFrame.size.height

  height = nav_bar_height + status_height

  scroll_frame = self.view.bounds

  new_frame = CGRect.new([0, height], [scroll_frame.size.width, scroll_frame.size.height])

  @scroll                      = UIScrollView.alloc.initWithFrame(new_frame)
  @scroll.bounces              = true
  @scroll.delegate             = self
  @scroll.alwaysBounceVertical = true
  @scroll.scrollsToTop         = true
  @scroll.contentSize          = CGSizeMake(UIScreen.mainScreen.bounds.size.width, scroll_frame.size.height)


  self.view.addSubview(@scroll)

end
Run Code Online (Sandbox Code Playgroud)

我不再获得导航栏的透明/模糊.只有当我调整滚动的框架 - 在x原点 - 新的高度时,这似乎才会发生.所以我想知道为什么会这样,以及如何在不失去模糊/透明度的情况下最好地调整我的卷轴.

小智 5

也许你可以尝试插入

[scroll setContentInset:UIEdgeInsetsMake(nav_bar_height + status_height, 0.0, 0.0, 0.0)];
[scroll setScrollIndicatorInsets:UIEdgeInsetsMake(nav_bar_height + status_height,0.0,0.0,0.0)];
Run Code Online (Sandbox Code Playgroud)

希望有所帮助