2015-01-15 4 views
0

По сути, я хочу собирать данные в ячейках коллекции. Ячейки могут иметь фиксированный или малый диапазон ширины, постоянную высоту и содержать одни и те же основные элементы пользовательского интерфейса. По мере создания большего количества ячеек они должны «течь» поперек экрана.Невозможно удовлетворить ограничениям в виде коллекции

Я пытаюсь (первый раз) настроить представление UICollection, которое должно загрузить одну ячейку, в которой есть текстовое поле и некоторые кнопки с ограничениями в IB, а также дополнительное представление нижнего колонтитула с помощью кнопки для добавления ячеек. Представление загружается с начальной ячейкой в ​​симуляторе (без нижнего колонтитула), но я получаю ошибки в моем журнале во время выполнения. Перед запуском нет ошибок ограничения, и я пробовал много вариантов. В журнале ограничение выделяется следующим образом: NSAutoresizingMaskLayoutConstraint: 0x7fbc3ae4fdc0 h = - & v = - & V: [UIView: 0x7fbc3ac3a270 (50)]. Я не добавил никаких UIViews, и я не вижу никого в меню раскадровки сцен, контроллеров и представлений. Если я устанавливаю translatesAutoresizingMaskIntoConstraints на false, я получаю сообщение об ошибке: «Должен переводить авторезистирующую маску в ограничения, чтобы иметь _setHostsLayoutEngine: YES.»

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

+0

Вы добавили ограничения ко всем объектам в UICollectionViewCell, поэтому каждый из них имеет минимум 4 ограничения, чтобы связать их во время выполнения? Если нет, это может быть проблемой, см. Этот ответ, в котором подробно рассказывается о том, как правильно настроить ячейку с ограничениями. http://stackoverflow.com/a/25775111/2507277 Я надеюсь, что это поможет с вашей проблемой. –

+0

Я следовал шаблону добавления ограничений сверху и слева, а также ширины и высоты, и, как вы полагаете, все ограничения были в порядке во время выполнения! Моя проблема тогда заключалась в том, что я не хотел ни фиксированной ширины, ни высоты, но добавление какого-либо ограничения в задний край ячейки возвращало ошибки. Затем я понял, что ширина самой ячейки, когда она установлена ​​в коде, должна противоречить ширине содержимого внутри ячейки. Спасибо Джим за открытие трещины. Если вы считаете, что это стоит вашего времени, поставьте ответ - см. Комментарии, и я помету его как ответ. – DrWhat

ответ

0

Ответил в комментариях. В основном размер ячейки был меньше, чем его содержимое. В конечном итоге я сделал ограничение ячейки более или равным размеру, который мне нужен. Все ошибки исчезли, но я живу в страхе перед гигантской ячейкой во время работы.

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