使用tableview时如何删除安全区域?
How to remove safe area when tableview is used?
我在UIViewController
里面有简单的UITableView
。这是我设置的配置和约束:
tableView.translatesAutoresizingMaskIntoConstraints = false
tableView.insetsContentViewsToSafeArea = false
view.addSubview(tableView)
tableView.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
tableView.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true
tableView.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
tableView.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true
通过这样做,我取消了 UITableView 中的 safeArea 并设置了忽略顶部、底部约束 safeAreaLayoutGuide
。是的,当我滚动 table 并且我想要忽略安全区域时,它非常有效。这是显示此内容的图片:
但问题出在开始时我没有开始滚动或触摸 table。它从安全区域下方开始,而不是安全区域之外。这是:
我不希望它发生。我希望我的 UITableView
(或第一个 UITableViewCell
)从最高点开始,忽略安全区域。即使我正确设置了约束,UITableView
似乎也忽略了这一点。那么,如何解决这个问题呢?
您还需要设置 tableView
的 contentInsetAdjustmentBehavior
:
tableView.contentInsetAdjustmentBehavior = .never
我在UIViewController
里面有简单的UITableView
。这是我设置的配置和约束:
tableView.translatesAutoresizingMaskIntoConstraints = false
tableView.insetsContentViewsToSafeArea = false
view.addSubview(tableView)
tableView.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
tableView.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true
tableView.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
tableView.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true
通过这样做,我取消了 UITableView 中的 safeArea 并设置了忽略顶部、底部约束 safeAreaLayoutGuide
。是的,当我滚动 table 并且我想要忽略安全区域时,它非常有效。这是显示此内容的图片:
但问题出在开始时我没有开始滚动或触摸 table。它从安全区域下方开始,而不是安全区域之外。这是:
我不希望它发生。我希望我的 UITableView
(或第一个 UITableViewCell
)从最高点开始,忽略安全区域。即使我正确设置了约束,UITableView
似乎也忽略了这一点。那么,如何解决这个问题呢?
您还需要设置 tableView
的 contentInsetAdjustmentBehavior
:
tableView.contentInsetAdjustmentBehavior = .never