以编程方式在swift中加载创建uitableview

时间:2015-09-22 04:12:50

标签: ios uitableview swift2

我正在尝试以编程方式在swift中创建一个uitableview但是这里没有加载我的代码:

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)
    }

你们中的任何人都知道我错过了什么或者我的代码出了什么问题?

我真的很感谢你的帮助。

7 个答案:

答案 0 :(得分:10)

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(frame:UIScreen.mainScreen()。bounds,style:UITableViewStyle.Plain)

这行代码会设置tableview的框架,默认UITableViewStyle

答案 1 :(得分:1)

迟到但可以帮助别人,你必须补充:

tableView.translateAutoresizingMaskIntoConstraints = false

答案 2 :(得分:1)

试试这个:

 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) 
}

您可以将自定义框架指定为:CGRectMake(x,y,width,height) 这里宽度和高度指的是所需的桌面宽度和宽度。身高

答案 3 :(得分:1)

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

答案 4 :(得分:0)

在设置代理人之前,请使用

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

它会正常工作

答案 5 :(得分:0)

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)
}

答案 6 :(得分:0)

SWIFT 3x

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