Ios 《安全区布局指南》';t在情节提要中为UITableViewController工作
似乎UITableViewController没有安全区域布局指南,无法在iPhone X中将桌面视图的顶部和底部边距设置为与底部布局相匹配,所有视图控制器都可以与故事板中的安全区域布局指南配合使用,用于顶部和底部边距。除UITableView控制器外,请帮助解决此问题 为了便于参考,我附上了iPhoneX的截图。在这里,您可以看到字符串“小麦”不适合底部安全区域的内部Ios 《安全区布局指南》';t在情节提要中为UITableViewController工作,ios,uitableview,uistoryboard,iphone-x,safearealayoutguide,Ios,Uitableview,Uistoryboard,Iphone X,Safearealayoutguide,似乎UITableViewController没有安全区域布局指南,无法在iPhone X中将桌面视图的顶部和底部边距设置为与底部布局相匹配,所有视图控制器都可以与故事板中的安全区域布局指南配合使用,用于顶部和底部边距。除UITableView控制器外,请帮助解决此问题 为了便于参考,我附上了iPhoneX的截图。在这里,您可以看到字符串“小麦”不适合底部安全区域的内部 我相信这种情况会发生,因为视图控制器的视图(总是占据整个屏幕大小)是表视图 使用UIViewController并在其视图下添
我相信这种情况会发生,因为视图控制器的视图(总是占据整个屏幕大小)是
表视图
使用UIViewController
并在其视图下添加一个表视图(并添加约束以尊重底部安全区域)
或
使用以下选项设置表视图内容插图:
tableView.contentInset = UIEdgeInsetsMake(0, 0, UIApplication.shared.keyWindow!.safeAreaInsets.bottom, 0.0);
如果您在11下使用后者和目标iOS版本,请确保使用以下工具进行验证:
var safeAreaBottom: CGFloat = 0.0
if #available(iOS 11.0, *) {
safeAreaBottom = UIApplication.shared.keyWindow!.safeAreaInsets.bottom
}
tableView.contentInset = UIEdgeInsetsMake(0, 0, safeAreaBottom, 0.0);
我还注意到ios11中的tableview
的这个属性(但没有说明:/):insetContentViewstoSafeArea
我还没试过,但你可以试一下。也许这就是您需要的开箱即用这是我当前的修复方法,用于在UITableViewController
中强制设置顶部和底部安全区域。首先,您必须将其嵌入UINavigationController
(如果不需要,请隐藏导航栏),然后:
令人遗憾的是,我们不得不编写所有这些代码,所以如果有人知道更简单的实现方法,请告诉我们
另外,我在这里使用了这个小型的UIView
扩展:
extension UIView {
func addSubview(_ child: UIView, constraints: [NSLayoutConstraint]) {
addSubview(child)
child.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate(constraints)
}
}
我尝试将内容视图插入安全区域,但似乎没有帮助。根据这一点,默认情况下它是“true”。但是按照您的示例设置tableView.contentInset
会很有魅力!你确定这在iOS 12.2中仍然有效吗?我不能让它工作。当将insetContentViewstoSafeArea
设置为false
时,它也不起作用。
extension UIView {
func addSubview(_ child: UIView, constraints: [NSLayoutConstraint]) {
addSubview(child)
child.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate(constraints)
}
}