Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/104.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 无法将UITableView约束到安全区域_Ios_Autolayout - Fatal编程技术网

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