2015-10-02 15 views
0

Я занимаюсь созданием приложения в стиле журнала, которое позволяет пользователям потреблять информацию об истории. Для навигации я использую tableview с изображениями в ячейках. Моя проблема - они хорошо выглядит только в iPhone 5, как это:UITableView - показать разные размеры изображений на разных устройствах

enter image description here

и на iPhone 6 она выглядит растягивается, не хорошо, как этот

enter image description here

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

+0

Вы использовали автоматическую компоновку на ячейке – Lamar

+0

Да, я использую высоту, ширину, аспект рацион и изображение клипа как сверху, так и снизу и слева и справа –

ответ

0

Вы можете вычислить высоту ячейки программно и использовать ограничения расстояния 0px для изображения со всех сторон. Если вы установите режим UIImage Scale To Fill и правильно рассчитаете высоту, он будет работать.

Вы можете рассчитать размер по этому пути:

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { 
 
     return tableView.bounds.size.width * 0.25 //Or what you need 
 
    }

+0

Как рассчитать высоту? Все остальное, что вы упомянули, я уже пробовал, а вместо изображений я получил некоторый растягивающий беспорядок. –

+0

Обновлен ответ с кодом. – Gabriel

+0

есть некоторый прогресс, но выглядит неплохо. Https://s.mail.ru/54U1YhGEdxds/img-2015-10-02-19-52-37.png также пробовал аспект fit - https: //s.mail. ru/5BYSVfSQrfQV/img-2015-10-02-19-55-09.png изображения имеют гораздо лучший размер, но есть проблема с общей ячейкой –

0

Ваши клетки на Iphone 6 не имеют одинаковое соотношение сторон Iphone 5. Они должны быть выше. Как упоминание @gabriel, установите поля изображения в 0 и верните определенную высоту в зависимости от того, является ли это iPhone 5 o 6.

+0

Как рассчитать высоту для разных устройств? –

+0

что-то вроде этого 'override func tableView (tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { if (iphone5) return someHeight; еще верните someOtherHeight; } ' – Lucho

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