2013-12-10 6 views
4

В Xcode 5.0.2 Я пытаюсь воссоздать пример «Collection View» Майкла Лехмана для его видеоурока Learning To Build Apps For iPhone And iPad (пароль защищен Safari, глава 5).Загрузка коллекции View Cell из раскадровки (вместо nib с registerNib)

Майкл загружает коллекцию Просмотр ячейку из бобов файла со следующим кодом (здесь полной версию своего ExploreUICollectionView/ViewController.m):

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    self.myCollectionView.delegate = self; 
    self.myCollectionView.dataSource = self; 

    self.cellData = [[NSMutableArray alloc]init]; 

    for(int i=0; i < 100; i++) 
    { 
     [self.cellData addObject:[NSString stringWithFormat:@"#%d", i+1]]; 
    } 

    UINib *cellNib = [UINib nibWithNibName:@"CVCell" 
            bundle:nil]; 
    [self.myCollectionView registerNib:cellNib 
      forCellWithReuseIdentifier:@"CVCell"]; 
} 

Я же хотел бы, чтобы не создавать отдельный файл острия для ячейки, но перетащите вид на Main_iphone.stroryboard и Main_ipad.storyboard, при необходимости приведите его «Идентификатор растрескивания», а затем (как-нибудь) используйте его в myCollectionView.

Мой вопрос: Какие методы я должен назвать, пожалуйста?

Я не могу использовать nibWithNibName и registerNib:forCellWithReuseIdentifier здесь.

UPDATE: (спасибо!) rdelmar в совет has worked:

enter image description here

ответ

10

Вы не можете перетащить вид в раскадровке, просматривать только контроллеры. Чтобы сделать это в раскадровке, вы добавляете представление коллекции в контроллер или перетаскиваете контроллер представления коллекции. Вы получите отдельную ячейку в этом представлении коллекции, к которой вы можете добавить любые подзаголовки, которые вы хотите. Дайте ячейке идентификатор повторного использования и не регистрируйте ничего в коде контроллера. Вы можете сделать подкласс UICollectionViewCell, если хотите, и изменить класс этой ячейки в свой подкласс.

+0

Это хорошо сработало, спасибо. Вы когда-нибудь получали советы о том, как настроить промежутки между ячейками? Я не могу определить настройку в раскадровке (см. Новый скриншот). –

+2

. В представлении Collection будет помещено столько ячеек по экрану, сколько будет соответствовать (если вы используете стандартную раскладку потока), так насколько большие разрывы зависят от насколько большие ячейки, сколько вставки, которую вы даете им в коллекцииView: layout: insetForSectionAtIndex :, и минимальное расстояние между элементами (collectionView: layout: minimumInteritemSpacingForSectionAtIndex :). Посмотрите на протокол UICollectionViewDelegateFlowLayout для специфики этих методов. – rdelmar

+1

+1 для «ничего не регистрировать в коде контроллера». V. важно. – fatuhoku

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