Ios 无法将UITableView约束到安全区域
似乎无法将约束添加到Ios 无法将UITableView约束到安全区域,ios,autolayout,Ios,Autolayout,似乎无法将约束添加到UITableView 我想在表视图中添加“将顶部对齐到:安全区域”约束,因为正如您所看到的,单元格似乎不在安全区域内: 如何约束表视图使其保持在安全区域的范围内?似乎您使用的是UITableViewController。这样,您就无法更改tableView的默认约束。您只能添加一个导航控制器。(单击UITableViewController,而不是在显示器顶部:编辑器->嵌入->导航控制器) 另一种方法是将UITableView添加到UIViewController。在这
UITableView
我想在表视图中添加“将顶部对齐到:安全区域”约束,因为正如您所看到的,单元格似乎不在安全区域内:
如何约束表视图使其保持在安全区域的范围内?似乎您使用的是UITableViewController。这样,您就无法更改tableView的默认约束。您只能添加一个导航控制器。(单击UITableViewController,而不是在显示器顶部:编辑器->嵌入->导航控制器) 另一种方法是将UITableView添加到UIViewController。在这种情况下,可以添加所需的任何约束 查看下面的代码。这可以帮助您确定下一步应该做什么
import UIKit
class ViewController: UIViewController,UITableViewDataSource, UITableViewDelegate {
var data: [String] = ["Cell 1", "Cell 2", "Cell"]
var colors: [UIColor] = [.red, .green, .blue]
@IBOutlet weak var tableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
tableView.delegate = self
tableView.dataSource = self
tableView.reloadData()
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "id", for: indexPath)
cell.textLabel?.text = data[indexPath.row]
cell.contentView.backgroundColor = colors[indexPath.row]
return cell
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return data.count
}
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
}
最后,您将在下面的屏幕截图上看到类似的内容
另外,别忘了在原型单元中添加标识符。在我的示例中,标识符是“id”
下面是所有Xcode项目的屏幕截图
我的解决方案是将
UITableViewController
更改为UIViewController
,并将UITableView添加到视图中,然后添加顶部、底部、左侧和右侧约束
请注意,在将类更改为从UIViewController
继承而不是从UITableViewController
@interface MyViewController : UITableViewController
到
显然,如果不是以编程方式执行此操作,您还需要重新链接UITableView,并连接数据源和委托检查
自动调整滚动视图插图
和tableView.contentInsetAdjustmentBehavior
人员属性。前者应设置为true
,后者应设置为以外的值。决不
。如果可用(iOS 11.0,*){tableView.contentInsetAdjustmentBehavior=.scrollableAxes},则需要进行版本检查
@interface MyViewController : UIViewController