我用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, Steve
。 Surname, My Surname Is, Jobs
。 Date of Birth, My Date of birth is, 01/01/2016.
感谢您的贡献。
答案 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 +中设置行高。