J'essaie de créer une uitableview par programme dans Swift mais ne charge pas, voici mon code:
class ViewController: UIViewController, UITableViewDelegate,UITableViewDataSource {
var tableView: UITableView = UITableView()
override func viewDidLoad() {
super.viewDidLoad()
tableView.delegate = self
tableView.dataSource = self
tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cell")
self.view.addSubview(self.tableView)
}
Chacun de vous sait ce qui me manque ou ce qui ne va pas avec mon code?
Je vais vraiment apprécier votre aide.
override func viewDidLoad() {
super.viewDidLoad()
tableView = UITableView(frame: UIScreen.mainScreen().bounds, style: UITableViewStyle.Plain)
tableView.delegate = self
tableView.dataSource = self
tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cell")
self.view.addSubview(self.tableView)
}
tableView = UITableView (cadre: UIScreen.mainScreen (). bounds, style: UITableViewStyle.Plain)
Cette ligne de code définira le cadre de votre tableview
, avec par défaut UITableViewStyle
également.
Swift 3.x
//MARK: Create TableView
func createTableView() -> Void {
print("Create Table View.")
if self.tblView == nil{
self.tblView = UITableView(frame: UIScreen.main.bounds, style: .plain)
self.tblView.delegate = self
self.tblView.dataSource = self
self.tblView.register(UITableViewCell.self, forCellReuseIdentifier: "cell")
self.view.addSubview(self.tblView)
}
else{
print("Table view already has been assigned.")
}
}
en retard, mais peut aider les autres, vous devez ajouter:
tableView.translateAutoresizingMaskIntoConstraints = false
Essaye ça:
override func viewDidLoad() {
super.viewDidLoad()
let screenSize:CGRect = UIScreen.mainScreen().bounds
tableView.frame = CGRectMake(0, 0, screenSize.width, screenSize.height)
tableView.delegate = self
tableView.dataSource = self
tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cell")
self.view.addSubview(self.tableView)
}
Vous pouvez personnaliser le cadre en tant que: CGRectMake (x, y, largeur, hauteur) Ici, largeur et hauteur se rapportent à la largeur et à la hauteur souhaitées de la vue table.
Swift 3x
tableView.register(UINib(nibName: "cell", bundle: nil), forCellReuseIdentifier: "cell")
Swift 3:
var tableView: UITableView = UITableView()
override func viewDidLoad() {
super.viewDidLoad()
tableView = UITableView(frame: UIScreen.main.bounds, style: .plain)
tableView.delegate = self
tableView.dataSource = self
tableView.register(UITableViewCell.self, forCellReuseIdentifier: "Cell")
self.view.addSubview(tableView)
}
avant d’inviter des délégués, utilisez
tableView = UITableView(frame: UIScreen.mainScreen().bounds, style: UITableViewStyle.Plain)
Ça fonctionnera correctement