2015-06-19 4 views
0

У меня есть контроллер табличного представления, отображающий квадратные видео, и я хочу, чтобы каждая ячейка представления таблицы была квадратной. Возможно ли, чтобы каждый UITableViewCell динамически изменялся в зависимости от ширины экрана (например, 320x320 для iPhone5 и 375x375 для iPhone6)?Создание UITableViewCell на основе ширины экрана

В функции viewDidLoad моего взгляда контроллера у меня есть:

frameWidth = self.view.frame.size.width 
    self.videosView.rowHeight = UITableViewAutomaticDimension 
    self.videosView.estimatedRowHeight = frameWidth 

ограничения для представления, которое отображает видео внутри UITableViewCell являются: Ведущими и пространством для надтаблицы, верхнее пространство для SuperView, 1: 1 соотношение сторон

Я все еще не могу получить клетку, чтобы быть квадратом. Любая помощь будет оценена!

+0

Почему не просто установить статическая высота строки после определения размера экрана на устройстве с помощью переключателя? –

ответ

0

Существует веская причина, по которой это трудно сделать. Ячейки внутри UITableView повторно используются, поэтому их можно выделить один раз. (для производительности) Изменение размера изображения является разумным по стоимости, таким образом вы ставите только одно число в качестве высоты ячейки.

Что вы можете сделать, так это иметь оператор if и возвращать его в соответствии с версией телефона.

0

попытаться использовать его с границами вместо кадра

frameWidth = view.bounds.size.width 
0

Вы можете использовать этот метод Tableview:

override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { 
    return UIScreen.main.bounds.width 
} 

Примечание: Метод в Swift 3

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