2016-04-25 18 views
6

ich habe einen UITableViewController, mit einer Zelle des Stil uitableviewcellstylesubtitle, wo das Untertitel-label NumberOfLines = 0Standard UITableView Zelle automatische Höhen

hat und wenn ich

tun
tableView.rowHeight = UITableViewAutomaticDimension 
tableView.estimatedRowHeight = 44.0 

die Zellen nicht tun automatische Höhe, kann es wirklich wahr sein - dass Sie das nicht für die Standard-Style-Zellen verwenden können?

EDIT:

Einfache Bevölkerung

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) 
    let thisHelpArticle = helpObjects[indexPath.section] 

    cell.textLabel!.text = thisHelpArticle.helpHeadline 
    cell.detailTextLabel!.text = thisHelpArticle.helpDescription 

    return cell 
} 
+0

Wir brauchen mehr Informationen. Bitte zeigen Sie uns, wie Sie Zellen bevölkern. Plus, verwenden Sie automatisches Layout? – ozgur

+0

Wie bereits erwähnt, ist es nur ein uitableviewcontroller mit einer Standardzelle mit dem Untertitel-Stil, so dass Sie kein automatisches Layout hinzufügen können, wird Population über – magnuskahr

+0

hinzufügen Können Sie 'cell.layoutIfNeeded()' direkt vor dem Zurückgeben der Zelle aufrufen? – ozgur

Antwort

4

UPDATE !!! Damit der Standard-Zellen-Untertitel die Zelle autorisiert, müssen Sie die Anzahl der Zeilen auf label auf 0 setzen. Andernfalls funktioniert es nicht. Seltsam.

cell.textLabel?.numberOfLines = 0 
cell.detailTextLabel?.numberOfLines = 0 

Sie können die Standardgröße der Zellen automatisch anpassen. In seiner einfachsten Form habe ich den folgenden Code. Die Größe der Standard-Untertitel-Zelle wird automatisch angepasst.

class ViewController: UIViewController { 

    @IBOutlet var tableView: UITableView! 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     tableView.dataSource = self 
     tableView.delegate = self 
     tableView.rowHeight = UITableViewAutomaticDimension 
     tableView.estimatedRowHeight = 44 
    } 

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

extension ViewController: UITableViewDataSource { 
    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
     return 2 
    } 

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
     let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) 
     let thisHelpArticle = "Lorem ipsum dolor sit amet, vel porttitor blandit, aliquam tristique vestibulum, enim vel eros fames id, in gravida vestibulum gravida tempor, et vel libero sed mauris. Suspendisse ut placerat viverra dictum, ante ante vel ut vestibulum sollicitudin phasellus. Dictumst adipiscing adipiscing nisl, fusce ut. Ante wisi pellentesque, et aliquam rhoncus eget convallis quam voluptate, ut nec quis, sodales ullamcorper elementum pellentesque sagittis vitae, dolor justo fermentum amet risus. Eu placerat ultricies. Ipsum sodales, massa elit, in neque, sed penatibus gravida, cursus eget. Ut tincidunt at eu, wisi dis vel penatibus eget, volutpat ligula vel tortor morbi feugiat, dui et eiusmod dis sociis. Iaculis lorem molestie laoreet sit, orci commodo, fusce vestibulum sapien, quisque egestas maecenas sed rem in nisl." 

     cell.textLabel?.numberOfLines = 0 
     cell.detailTextLabel?.numberOfLines = 0 

     cell.textLabel!.text = thisHelpArticle 
     cell.detailTextLabel!.text = thisHelpArticle 

     return cell 
    } 
} 

extension ViewController: UITableViewDelegate { 

} 
+0

Ich habe herausgefunden, genau wie du es geschrieben hast, die Zelle wird größer, aber schneidet immer noch ein wenig Text, wie ich sehen kann – magnuskahr

+0

In der Tat es tut. Ich denke, du musst es unterklassieren. Seltsam. Upvote für die Klärung der Frage. – oyalhi

Verwandte Themen