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 } 

One Solution collect form web for “Variable height CollectionView внутри ячейки размера TableView с самообучением с AutoLayout на iOS8 +”

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

  • Программно запускать кнопку UITableViewCell «Удалить»
  • Ошибка: UITableView переместится вверх с помощью UITableViewAutomaticDimension
  • UITableViewController, изменяющий одну повторно используемую ячейку, влияет на другие ячейки
  • iOS: кнопка в классе UITableViewCell для вызова метода на основном UIViewController
  • Разделите `UITableViewCell` на части
  • Table View загрузить больше ячейки?
  • Как определить, будет ли ячейка, возвращаемая dequeueReusableCellWithIdentifier, повторно использоваться в iOS 6?
  • Как получить размер между tableView и tabBar?
  • Получить количество строк, необходимых для UILabel из NSString?
  • Изображение UITableViewRowAction для заголовка
  • Шрифт для названий кнопок в editActionsForRowAtIndexPath
  • Разверните ячейку при использовании в Swift
  • PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.