Variable height CollectionView внутри ячейки размера TableView с самообучением с AutoLayout на iOS8 +

У меня есть UITableView с высотой ячейки с размерами, используя ограничения UITableViewAutomaticDimension и AutoLayout. В одной из прототипов я должен добавить UICollectionView с UICollectionViewFlowLayout который будет UICollectionViewFlowLayout ячейки вертикально в одном столбце для классов компактного размера или в сетке из 3 столбцов для классов стандартного размера. Поэтому высота представления коллекции динамична, и макет может измениться даже при вращении на iPhone 6 Plus (Compact-> Regular).

Я настраиваю свой табличный вид с помощью специальных ячеек прототипа в раскадровке и добавляю пользовательский коллекционный просмотр в ячейку прототипа, всегда ограничивает ограничения AutoLayout до соответствующего края супервизора (ведущий, трейлинг, верхний, нижний = 0 для супервизора) … collectionView- > tableviewContentView-> tableviewCell.

Мне нужна переменная высота представления коллекции, чтобы управлять высотой ячейки прототипа tableview. До сих пор я всегда получаю следующую ошибку AutoLayout во время выполнения.

 Warning once only: Detected a case where constraints ambiguously suggest a height of zero for a tableview cell's content view. We're considering the collapse unintentional and using standard height instead. 

Не могли бы вы предложить правильный подход к этому? Спасибо!

Основной TableViewController:

 class TableViewController: UITableViewController { override func viewDidLoad() { super.viewDidLoad() tableView.estimatedRowHeight = 200.0 tableView.rowHeight = UITableViewAutomaticDimension } /// ... plus tableview datasource functions } 

CollectionView:

 class AttachmentCollectionView: UICollectionView, UICollectionViewDataSource, UICollectionViewDelegate { override func awakeFromNib() { let nib = UINib(nibName: Constants.AttachmentCollectionView.cellNibName, bundle: nil) registerNib(nib, forCellWithReuseIdentifier: Constants.AttachmentCollectionView.cellIdentifier) collectionViewLayout = attachmentFlowLayout() dataSource = self delegate = self backgroundColor = UIColor.whiteColor() } private func attachmentFlowLayout() -> UICollectionViewFlowLayout { let layout = UICollectionViewFlowLayout() layout.scrollDirection = .Vertical layout.itemSize = CGSize(width: 70, height: 50) layout.sectionInset = UIEdgeInsets(top: 0.0, left: 0.0, bottom: 0.0, right: 0.0) layout.minimumLineSpacing = 0.0 layout.minimumInteritemSpacing = 0.0 layout.headerReferenceSize = CGSizeMake(0.0, 0.0) layout.footerReferenceSize = CGSizeMake(0.0, 0.0) return layout } // ...plus collectionview datasource functions } 

Я думаю, что реализация метода tableView(_ tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat может работать.

  • Как оживить изменение высоты заголовка раздела в UITableView?
  • UITableView: как отключить перетаскивание элементов в определенную строку?
  • Table View, Как перенести кнопку удаления на передний план?
  • Прокрутка вверх, когда вы нажимаете строку состояния
  • Ошибка в UITableView (deleteSections: withRowAnimation:)?
  • Постоянные данные в Swift
  • Как установить прозрачный фон для заголовка UITableView с непрозрачным телом
  • Как отключить выделение выделения UITableView?
  • как реализовать загрузку больше для представления таблицы при прокрутке вниз? (т.е. потянуть вверх для обновления)
  • ToolBar между UINavigationBar и UITableView?
  • Как включить удаленное удаление UITableView вместе с горизонтальной прокруткой страницы
  • Давайте будем гением компьютера.