をのUITableViewを制約することはできません私が「安全領域上揃えへ」を追加したいと思いUITableView
は安全な場所に
に制約を追加することはでき表示されません。安全なエリア内にあることが表示されません。
私は安全なエリアの境界内にとどまるために、テーブルビューを制限するにはどうすればよいですか?
をのUITableViewを制約することはできません私が「安全領域上揃えへ」を追加したいと思いUITableView
は安全な場所に
に制約を追加することはでき表示されません。安全なエリア内にあることが表示されません。
私は安全なエリアの境界内にとどまるために、テーブルビューを制限するにはどうすればよいですか?
あなたはUITableViewControllerを使用しているようです。このようにして、tableViewのデフォルトの制約を変更する方法はありません。あなたが行うことができるのは、ナビゲーションコントローラを追加することだけです。 (UITableViewControllerをディスプレイの上部よりクリックしてください:Editor-> Embed In-> Navigation Controller)
別の方法は、UIViewControllerにUITableViewを追加することです。この場合、任意の制約を追加できます。
以下のコードを見てください。これは、次に何をすべきかを理解するのに役立ちます。
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プロジェクトのスクリーンショットです。私の解決策
はUIViewController
に、UITableViewController
を変更し、ビューにのUITableViewを追加し、その後、上、下、左と右の制約を追加することでした。
あなたがクラッシュを取得することに注意してください、あなたは
@interface MyViewController : UIViewController
にUIViewController
代わりのUITableViewController
@interface MyViewController : UITableViewController
から継承するクラスを変更するまで、あなたは明らかにものUITableViewを再リンクする必要がありますに、とあなたが計画的にそれをしていないのであれば、データソースとデリゲートを接続してください。
'automaticallyAdjustsScrollViewInsets'と' tableView.contentInsetA生活の質を高めます。前者は 'true'に、後者は' .never'以外に設定する必要があります。 –
バージョンチェックが必要な場合は、if #available(iOS 11.0、*){tableView.contentInsetAdjustmentBehavior = .scrollableAxes} ' –