我是iOS新手,

One simple case of my trouble is:

如何放置UILabel(或任何UIViews)只是在导航栏和状态栏下面?布局预计是动态的(假设这些视图始终紧跟导航栏,无论导航栏或状态栏的高度如何变化),如下所示:

An image for detailed infomation

已经考虑过一些情况:

  • 我知道在 UIViewController 中使用 automaticallyAdjustsScrollViewInsets 可以自动布局滚动视图 . 但是这里的情况不允许使用scrollview .

  • 状态栏's height can be a constant value of 1579962 in most iOS device, and the default navigation bar'的高度可以是"44"同样的方式 . 区别在于我可以使用 [[UIApplication sharedApplication] statusBarFrame 在代码中的任何位置动态获取状态栏的高度,虽然导航栏的高度可以用相同的"get frame"方式引用,我的大多数情况是在导航栏添加到超级之前获得高度查看,所以我总是从它的框架得到0高度 .

  • 虽然在大多数情况下,状态栏和导航栏的总高度可以定义为值“64”,但由于更多新设备可能会更改此值,因此它不是未来考虑的永恒方式 .