2015-09-09 4 views
1

Я воспроизвожу эффект на изображении ниже. Я создал специальный класс UITableViewCell с свойством UIImageView. Я установил ячейку прототипа в свой собственный класс. Тем не менее, я не могу получить высоту ячейки таблицы, чтобы изменить ее размер до высоты изображения. Всегда есть пространство над и под изображением.Как заполнить ячейку таблицы изображением в Swift

enter image description here

+0

Установили ли вы автоматическую компоновку? – Miknash

ответ

0

Вы можете сделать Heigh из ваших UITableViewCell динамического относительно высоты изображения. UITableViewDelegate имеет функцию под названием tableView:estimatedHeightForRowAtIndexPath:, что в соответствии с Apple:

просит делегат для расчетной высоты строки в указанном месте.

Тогда вы можете в вашем методе просят высоты UIImageView и установить высоту строки должным образом, следующий пример:

func tableView(tableView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { 
    return self.getEstimatedHeightForImageAtIndex(indexPath.row) 
} 

func getEstimatedHeightForImageAtIndex(row: Int) -> CGFloat { 
    // here you need to get the height of image for the selected row. 
} 

Существует хороший учебник вы можете прочитать, чтобы знать подробнее об этой теме:

Надеюсь, это поможет вам.

0

Что я сделал, это создать пользовательский UITableViewCell, добавив UIImageView в ячейку и изменив его размер в раскадровке, чтобы заполнить всю ячейку.

Если вы это сделаете, убедитесь, что вы добавили ограничения для его горизонтального и вертикального центрирования и добавили ограничения расстояния, но измените интервал, а не на край (снимите флажок).

Смотрите изображение ниже:

enter image description here

И еще одна вещь, чтобы помнить, режим содержания ImageView. Я многому научился от ответов @EmptyStack и @erkanyildiz до this question.

Надеюсь, вы нашли что-нибудь из этого полезного, и я сожалею, если никто из них не помог! :)

0

Создайте пользовательский UITableViewCell, установите стиль ячейки в пользовательском стиле в раскадровке. Добавьте UIImageView в ячейку и измените размер изображения, чтобы заполнить всю ячейку. Добавьте выход изображения в свой пользовательский UITableViewCell и используйте эту розетку при настройке изображения в вашем TableViewController.

В вашем viewDidLoad() функция добавить tableView.rowHeight = UITableViewAutomaticDimension

Тогда вам нужен изображения соотношение сторон (ширина/высота), поэтому вы можете использовать его, когда вы установите высоту строки.

func tableView(tableView: UITableView, estimatedHeightForRowAtIndexPath 
indexPath: NSIndexPath) -> CGFloat { 
    return view.frame.width/CGFloat(aspectRatio) 
} 
Смежные вопросы