如何在Table View的单元格中添加更多行?

时间:2016-03-28 18:05:38

标签: swift uitableview cells

我用Table View创建了一个应用程序并且我放了一些单元格,但是在单元格中只有一行文本,我如何使用更多行?

  

这就是它的样子。   

     

这是必须的。    

这是我用过的代码:

import UIKit

@available(iOS 9.0, *)
class DuasViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {

let tableList:[String] = ["Name", "Surname", "Date of Birth", "Place of Birth"]


@IBOutlet weak var myTableView: UITableView!


override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view.


    myTableView.reloadData()


    func allowMultipleLines(tableViewCell:UITableViewCell) {
        tableViewCell.textLabel?.numberOfLines = 10
        tableViewCell.textLabel?.lineBreakMode = NSLineBreakMode.ByWordWrapping
    }

    myTableView.reloadData()
}



override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.

}


func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

    var returnValue = 0

    returnValue = tableList.count

    return returnValue
}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let myCell = tableView.dequeueReusableCellWithIdentifier("myCells", forIndexPath: indexPath)

    myCell.textLabel!.text = tableList[indexPath.row]
    return myCell
}  
}

那么我将如何添加更多两行,而行需要不同,例如:Name, Stevens, SteveSurname, My Surname Is, JobsDate of Birth, My Date of birth is, 01/01/2016.

感谢您的贡献。

2 个答案:

答案 0 :(得分:3)

numberOfLines的{​​{1}}属性默认为1,将其设置为0以允许无限行。

所以,在你的UILabel方法中

cellForRowAtIndexPath

如果您希望myCell.textLabel!.numberOfLabels = 0位于不同的行中,则必须使用换行符Surname, My Surname Is, Jobs。您的字符串看起来像\n

答案 1 :(得分:1)

对于新的iOS 8,有一种新方法可以实现这一点。

有一个新参数可根据您的自动布局约束计算单元格高度。这是UITableViewAutomaticDimension。您可以在视图控制器的viewWillAppear方法中使用它。

目标C:

- (void)viewWillAppear:(BOOL)animated {
  [super viewWillAppear:animated];
  self.tableView.estimatedRowHeight = 70.0; // for example. Set your average height 
  self.tableView.rowHeight = UITableViewAutomaticDimension;
  [self.tableView reloadData];
}

夫特:

override func viewWillAppear(animated: Bool) {
    self.tableView.estimatedRowHeight = 70 // for example. Set your average height 
    self.tableView.rowHeight = UITableViewAutomaticDimension
    self.tableView.reloadData()

} 

在您的榜样中,您可以随心所欲地工作。至于我,我在viewDidLoad中添加高度的东西,并在viewWillAppear中只留下reloadData()。还有很有用的来源。

来自文档:rowHeight的默认值是UITableViewAutomaticDimension。我暂时保留代码,但请记住,您不需要在iOS 8 +中设置行高。