web-dev-qa-db-fra.com

la création de uitableview par programme dans Swift ne se charge pas

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.

9
user2924482
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.

10
Zigii Wong

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.")
    }
}
1
Anil Gupta

en retard, mais peut aider les autres, vous devez ajouter:

tableView.translateAutoresizingMaskIntoConstraints = false
1
Willy Cornejo

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. 

1
Asif

Swift 3x

tableView.register(UINib(nibName: "cell", bundle: nil), forCellReuseIdentifier: "cell")
0
miff

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)
}
0
JP Aquino

avant d’inviter des délégués, utilisez 

tableView = UITableView(frame: UIScreen.mainScreen().bounds, style: UITableViewStyle.Plain)

Ça fonctionnera correctement

0
Duraivel Ks