如何以编程方式使用UITableViewCell的子类创建UITableView?

时间:2018-02-04 11:36:23

标签: ios swift uitableview

这里没有好的答案。所以我想知道如何做到这一点。 例如,在UITableViewCell的customClass中,我想制作一个带有照片和标签的原型单元格。

    class myCell: UITableViewCell {
    init(style: UITableViewCellStyle, reuseIdentifier: String?){
   }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)

    }

    ....
    }



 class myController: UIViewController {
....
}

我想你们先在myController中注册myCell,然后

the cell = let cell = tableView.dequeueReusableCell() so on.

如果我在myController中注册myCell,则无需使用

init(style: UITableViewCellStyle, reuseIdentifier: String?){
   }

。如果我不在下面使用,如何将子视图添加到UITableViewCell视图?

init(style: UITableViewCellStyle, reuseIdentifier: String?){
       }

注意:我想注册单元格,因为我只加载单元格一次。并使用dequeueReusableCell()

使单元格可重复使用

你能告诉我如何专业地做这件事吗? 您可以使用自己的方法。我只想要一个带照片和标签的原型单元格。并且所有过程都是以编程方式进行的。

1 个答案:

答案 0 :(得分:2)

您可以定义自己的表格视图单元格类:

CustomTableController

然后您只需在class CustomTableController: UITableViewController { fileprivate var data: [Model] = [] override func viewDidLoad() { super.viewDidLoad() tableView.rowHeight = UITableViewAutomaticDimension tableView.estimatedRowHeight = 44 // registering a cell class for reuse is important // but it's enough to make it once in viewDidLoad tableView.register(CustomCell.self, forCellReuseIdentifier: CustomCell.identifier) tableView.reloadData() } // MARK: Table view data source override func numberOfSections(in tableView: UITableView) -> Int { return 1 } override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return data.count } override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { // here you can dequeue your cell let cell = tableView.dequeueReusableCell(withIdentifier: CustomCell.identifier, for: indexPath) as! CustomCell // configure the cell using model, e.g.: cell.configure(withTitle: data[indexPath.row].title) return cell } }

中使用它
  import java.io.*;


  class demo 
  {

  public static void main(String[]arg) throws IOException

  {

InputStreamReader i=new InputStreamReader(System.in);
 BufferedReader br=new BufferedReader(i);

 System.out.println("enter name");
 String s1=br.readLine();

 System.out.println("enter gender");
 char s2=(char)br.read();

 System.out.println("enter adress");
 String s3=br.readLine();

  System.out.println("name"+s1);
  System.out.println("gender"+s2);
  System.out.println("address"+s3);
  }
 }