2016-02-18 2 views
0

Я хочу получить высоту ячейки таблицы, используя heightForRowAtIndexPath. У меня есть две метки и одно изображение в моей ячейке прототипа. Вот раскадровка: enter image description hereПолучить высоту ячейки таблицы в зависимости от содержимого

У меня возникли проблемы с использованием tableView.estimatedRowHeight = 100 и tableView.rowHeight = UITableViewAutomaticDimension, потому что размер моих ячеек сильно меняется, поэтому я хочу сделать это вручную. Я думаю, что это лучше всего по размеру в соответствии с меткой заголовка или ярлыком автора, показанным на изображении выше, поскольку изображение будет представлять собой статический размер.

Есть много ответов Objective-C, но я не могу заставить его работать. Любые мысли о том, как это сделать с Swift?

ответ

0

Я сделал то же самое, чтобы помочь вам. Пожалуйста, проверьте его:

import UIKit 

class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate { 

    @IBOutlet weak var tableView: UITableView! 

    override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 


    tableView.estimatedRowHeight = 132.0 
    self.tableView.rowHeight = UITableViewAutomaticDimension 
    } 

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

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCellWithIdentifier("Cell") as! TableViewCell 

    if indexPath.row == 0 { 
     cell.myTitle.text = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." 
    } 

    cell.myTitle.numberOfLines = 0 
    cell.myAuthor.numberOfLines = 0 

    return cell 
    } 

    func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 

    } 

    func numberOfSectionsInTableView(tableView: UITableView) -> Int { 
    return 1 
    } 

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

enter image description here enter image description here

Надеется, что это поможет вам понять вашу проблему.

0

Это просто и легко попробовать этот

override func viewDidLoad() { 
    super.viewDidLoad() 

    tableView.estimatedRowHeight = 200.0 
    self.tableView.rowHeight = UITableViewAutomaticDimension 
    } 

И от раскадровки установить некоторые свойства через инспектор, такие как

  1. Держите число строк как 0 и для лейбла

  2. Разрыв линии как перенос слов

И от ограничения стороны

  1. Не дают то ограничение высоты

  2. Самое главное я думаю, что вы, возможно, дал бы Дно ограничение на UIImageView с клеткой, так что бы проблема.