2015-10-11 6 views
0

У меня есть uitableview, который имеет вид изображения. Высота и ширина (всегда квадрат) вычисляются с помощью автоматической компоновки, установленной в раскадровке, и работают нормально. Но когда я запускаю приложение, высота стола tableviewcell не обновляется. Я попытался следующий код, чтобы исправить это:Пользовательская высота для tableviewcell с uiimageview

tblvwPosts?.rowHeight = UITableViewAutomaticDimension 
tblvwPosts?.estimatedRowHeight = 300 

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

    let cell = tableView.dequeueReusableCellWithIdentifier("HomeTableViewCell", forIndexPath: indexPath) as! HomeTableViewCell 

    cell.setNeedsUpdateConstraints() 
    cell.updateConstraintsIfNeeded() 

    return cell 
} 

Но после добавления выше высоты кодовую tableviewcell изменяется на 44px. Кстати, у меня есть строка, похожая на instagram/facebook, где будет квадратное изображение с шириной/высотой, равной ширине устройства, а ниже - некоторые метки и кнопки.

С уважением
Панкая

ответ

0

Если у вас есть пользовательские ячейки, вы можете использовать этот метод, чтобы заставить вашу высоту ячейки строки к таможенной стоимости;

func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat 
{ 
    return 100.0;//Choose your custom row height 
} 

или вы можете просто изменить значение с помощью этого кода;

self.tableView.rowHeight = 100.0 
+0

Я ищу, чтобы сделать это с помощью автоматической компоновки не кодирования, в противном случае будет много условий для всех размеров iphone – pankaj

0

В viewDidLoad из вашего tableVC попытайтесь установить расчетную высоту на высоту в раскадровку, а затем сбросить его автоматического измерения

override func viewDidLoad(){ 
    super.viewDidLoad 
    tableView.estimatedRowHeight = tableView.rowHeight 
    tableView.rowHeight = UITableViewAutomaticDimention 
} 
+0

Я проверил, но я не мог найти расчетную высоту для tableview или tableviewcell в раскадровке. Я могу установить его только в кодировке – pankaj

+0

Он не говорит, что оценивается, но если вы выберете ячейку и перейдите к инспектору, высота строки – Lukas

+0

В коде вы сначала установите его в автоматическое измерение и вернитесь к оценочной строке высота. Я не думаю, что это тот порядок, который вы хотите, сначала получите оценку, затем пусть он вычислит автоматическое измерение соответственно. – Lukas

Смежные вопросы