2016-08-17 73 views
1

這是我用於表格視圖控制器的文件。當我運行該項目時,單元顯示用「名稱」編寫的文本,但不會顯示全部內容。如何在單元格中顯示整個文本(Swift)?

我希望它在同一個單元格中顯示整個文本。單元格的大小根據寫入的內容而定。

我該如何解決這個問題?

import Foundation 
import UIKit 

class FTBViewController: UITableViewController { 

var names = [String]() 
var identities = [String]() 

override func viewDidLoad() { 

    names = ["This is the text the cell is displaying but it won't show it all"] 
    identities = ["A"] 

    self.navigationItem.title = "Guía" 
    self.navigationController?.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName: UIColor.whiteColor()] 



} 

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

    return names.count 

} 

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 

    let cell = tableView.dequeueReusableCellWithIdentifier("FCell") 

    cell?.textLabel!.text = names[indexPath.row] 

    return cell! 

} 

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
    let vcName = identities[indexPath.row] 
    let viewController = storyboard?.instantiateViewControllerWithIdentifier(vcName) 
    self.navigationController?.pushViewController(viewController!, animated: true) 
} 
} 

回答

4

添加

cell?.textLabel!.numberOfLines = 0   
    cell?.textLabel!.lineBreakMode = .ByWordWrapping 
    cell?.textLabel!.font = UIFont.systemFontOfSize(14.0) // this is optional if you need use this 

完整的答案

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 

    let cell = tableView.dequeueReusableCellWithIdentifier("FCell") 
    cell?.textLabel!.numberOfLines = 0   
    cell?.textLabel!.lineBreakMode = .ByWordWrapping 
    cell?.textLabel!.font = UIFont.systemFontOfSize(14.0) 
    cell?.textLabel!.text = names[indexPath.row] 

    return cell! 

} 
+0

如果您的應用程序的部署目標低於8.0或者您沒有對單元使用自動高度,請考慮heightForRowAtIndexPath。因爲即使上面的代碼工作正常,您可能會遇到同樣的問題。 – Bharath

+0

@Bharath - 爲什麼tableview的默認高度是43,它自動調整,否則我們去計算高度,如果它是自動調整的,否則使用dimesnsion如果是自動佈局 –

+0

是的,我只是在某些情況下提醒,如果自動維度不起作用,則任何更長和您的部署目標都低於8.0。在這種情況下,您可能需要考慮heightForRowAtIndexPath。 – Bharath

2

你可以在 viewDidLoad中使用下面的代碼:

tableView.estimatedRowHeight = 44.0 
    tableView.rowHeight = UITableViewAutomaticDimension 

希望它可以幫助...

相關問題