它不會出現可能限制添加到UITableView
無法約束的UITableView到安全區域
我想補充的「頂部對齊到:安全區」約束表視圖,因爲你可以看到,細胞不要似乎是安全區域內:
如何約束表視圖留在安全區的範圍之內?
它不會出現可能限制添加到UITableView
無法約束的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
}
}
最後,您會在下面的截圖中看到類似內容。
P.S.不要忘記給你的原型單元添加標識符。在我的例子標識符爲「ID」
這裏是所有的Xcode項目的屏幕截圖。
我的解決辦法是改變UITableViewController
,到UIViewController
,和一個UITableView添加到視圖,然後添加頂部,底部,左,右限制。
注意,你會得到一個崩潰,直到您更改類從UIViewController
繼承,而不是UITableViewController
@interface MyViewController : UITableViewController
到
@interface MyViewController : UIViewController
你顯然還需要重新鏈接的UITableView,和連接數據源和委託,如果你不這樣做,編程
檢查'automaticallyAdjustsScrollViewInsets'和'tableView.contentInsetA djustmentBehavior' peperties。前者應設置爲TRUE;後者比'.never'以外的東西。 –
,你需要一個版本檢查'如果#available(iOS的11.0,*){tableView.contentInsetAdjustmentBehavior = .scrollableAxes}' –