我怎样才能将 uitableview header 放在状态栏后面?
how can i take uitableview header behind status bar?
我添加了两张图片,第一张显示了我想要的内容,第二张显示了正在发生的事情。我希望 uitableview header 位于状态栏后面,如第一张图片所示。部署目标是 9.2
第二个是
我假设您使用的是 Autolayout
,因此您可以将 table 视图的 .top
边距限制到其超级视图的 .top
或视图控制器的 topLayoutGuide
属性 这样 table 视图将从 0
:
开始
let toItem: Any = self.topLayoutGuide
// You can change this to `self.view` to have the same effect.
view.addConstraint(
NSLayoutConstraint(item: tableView,
attribute: NSLayoutAttribute.top,
relatedBy: NSLayoutRelation.equal,
toItem: toItem,
attribute: NSLayoutAttribute.top,
multiplier: 1.0, constant: 0
)
)
这是它在我的模拟器中的样子:
要让 table header 在状态栏下方开始,只需使用 layoutGuide
的 .bottom
属性 而不是 .top
:
在这里你可以download测试项目。
来自 Xcode 的警告:'topLayoutGuide' 在 iOS 11.0 中已弃用:使用 view.safeAreaLayoutGuide.topAnchor 而不是 topLayoutGuide.bottomAnchor
所以现在你可以这样做来达到同样的效果。
tableView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor, constant: 0).isActive = true
注意我们在这里使用 .topAnchor
的 safeAreaLayoutGuide。
我添加了两张图片,第一张显示了我想要的内容,第二张显示了正在发生的事情。我希望 uitableview header 位于状态栏后面,如第一张图片所示。部署目标是 9.2
第二个是
我假设您使用的是 Autolayout
,因此您可以将 table 视图的 .top
边距限制到其超级视图的 .top
或视图控制器的 topLayoutGuide
属性 这样 table 视图将从 0
:
let toItem: Any = self.topLayoutGuide
// You can change this to `self.view` to have the same effect.
view.addConstraint(
NSLayoutConstraint(item: tableView,
attribute: NSLayoutAttribute.top,
relatedBy: NSLayoutRelation.equal,
toItem: toItem,
attribute: NSLayoutAttribute.top,
multiplier: 1.0, constant: 0
)
)
这是它在我的模拟器中的样子:
要让 table header 在状态栏下方开始,只需使用 layoutGuide
的 .bottom
属性 而不是 .top
:
在这里你可以download测试项目。
来自 Xcode 的警告:'topLayoutGuide' 在 iOS 11.0 中已弃用:使用 view.safeAreaLayoutGuide.topAnchor 而不是 topLayoutGuide.bottomAnchor
所以现在你可以这样做来达到同样的效果。
tableView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor, constant: 0).isActive = true
注意我们在这里使用 .topAnchor
的 safeAreaLayoutGuide。