2016-06-11 2 views
1

Я искал в Интернете часами, но я не могу найти решение моей проблемы.Как назначить определенный ViewController UIView (в UICollectionView)?

У меня есть View в моей раскадровке, который содержит UICollectionView. Я установил ячейки UICollectionView, чтобы быть действительно большими (только один может появиться на экране, вам нужно прокручивать по горизонтали, чтобы увидеть остальные). В моем приложении я использую этот макет, чтобы задать пользователю несколько вопросов один за другим. Пользователь может ответить на эти вопросы, коснувшись кнопок, передвигаться по карте, выбирать дату и т. Д.. Каждый вопрос имеет один и тот же макет; они отображаются в поле с надписью названия и кнопкой. Вот почему я решил использовать UICollection View.

Я хочу отобразить конкретное представление (параметры, которые позволяют пользователю отвечать (кнопки, Map, DatePicker и т. Д.)) Для каждого вопроса в синем прямоугольнике (см. Рисунок ниже).

A screenshot of my view

Моя идея состояла в том, чтобы создать несколько ViewControllers в моем раскадровки и быть в состоянии сказать: «Хорошо, первый вопрос (первая ячейка), положить вид XXX в контейнере, для второго, поместите вид YYY и т. д. ».

Как это сделать?

Я попытался добавить ContainerView, но мы можем связать только один вид в раскадровке.

Я хочу, чтобы иметь возможность сделать что-то вроде этого:

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { 

    let cell = collectionView.dequeueReusableCellWithReuseIdentifier("Cell", forIndexPath: indexPath) as! SearchQuestionBox 
    cell.questionAnswersZone.view = storyboard.viewNumberOne //Just for the idea haha 

    return cell 

} 
+0

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

+0

Почему бы и нет, но мне нужно будет поместить заголовок и кнопку в каждую ячейку пользовательской коллекции, и если я решит что-то изменить, мне придется изменить ее на каждом, что не очень чисто ... Нет? – Tim

+0

Затем создайте пользовательский вид, загрузите его из xib и добавьте в качестве подзадача в пользовательскую ячейку. Пользовательская ячейка будет иметь заголовок и кнопку, и представление, которое будет вести себя как контейнер для вашего пользовательского представления – tbilopavlovic

ответ

1

Я хотел бы предложить не использовать несколько контроллеров представления.

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

+0

Спасибо за ваш ответ! Разве вы не знаете, что существует лучший способ сделать это? Потому что мне придется копировать/вставлять ярлык и кнопку на каждый кадр. И если однажды, дизайн изменится, мне придется применить новый дизайн на каждом отдельном фрейме, который на самом деле не чист, нет? Я не знаю, правильно ли я понял – Tim

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