Добавить CollectionView или ViewController в AlertView

У меня есть представление коллекции, как это: введите описание изображения здесь

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

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

3 ответа

Решение

Вы пытались реализовать UICollectionViewDelegateFlowLayout?

Если нет, попробуйте сделать это и добавьте метод

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
// Implement the code here, check if the indexPaths belong to the buttons,
// And make it return a Size which has a width that is half of the CollectionView width (minus the padding between cells).
}

Это позволяет CollectionView размещать их рядом, так как у них будет достаточно места для них обоих.

Чтобы установить кнопку в одну строку, вам нужно обновить кнопку Constraint.set ширину обеих кнопок равной ширине и выровнять верхнее, нижнее ограничение обеих кнопок.

Вытяните обе кнопки в stackView и нарисуйте ограничение ширины и высоты только одной кнопки, а другую следуйте ширине и высоте предыдущей кнопки. stackView сделает всю остальную работу.

Не забудьте добавить ограничение для stackView.:)

Я просто вытягиваю ограничение ширины и высоты на первую кнопку, и из представления stackView я устанавливаю равную заливку и взаимное расстояние.

Другие вопросы по тегам