2014-08-27 3 views
0

Добрый день. Скажите, как добавить в SearchBar CollectionView? Пробовал и через камеру и через многоразовый View - ошибка Xcode:Как связать SearchBar и CollectionView?

Illegal Configuration: Connection "searchBar" cannot have a prototype object as its destination.

ответ

0

1 - Добавление XIb файла

  • правой кнопкой мыши на папку, которую вы хотите добавить XIb>Новый файл>Интерфейс пользователя>Пустой;

  • Переместить UICollectionViewCell;

  • Переместить Вы хотите использовать;

2 - Добавление класса к UICollectionViewCell;

  • правой кнопкой мыши на папку, которую вы хотите добавить класс>Новый файл>Cocoa Touch> Выбрать UICollectionViewCell на Подкласс Off;

  • Дайте название своему классу;

3 - Подключите UICollectionViewCell к новому классу

  • Назад к .XIB файл, выберите кадр ячейки (он должен стать синим)

  • Дайте идентификатор в камеру;

  • Подключите созданный класс на пользовательского класса

  • Сделать тэ OUTLET к контроллеру

4 - Использование XIB на вашем CollectionView

  • Сразу после установки вашего CollectionViewDATASOURCE и делегата, регистра в XIb созданные для пользователя, когда вы хотите.

    self.collectionView.dataSource = self; 
    
    self.collectionView.delegate = self; 
    
    [self.collectionView registerNib:[UINib nibWithNibName:@"YourXibNameGoesHere" bundle:nil] forCellWithReuseIdentifier:@"YourIdentifierGoesHere"]; 
    
  • Использование ячейки, к которой вы привыкли.

    -(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { 
    
        YourCellClass *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"YourCellIdentifier" forIndexPath:indexPath]; 
    
        return cell; 
    } 
    

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

Надеюсь, это помогло! : D

+0

Как добавить многоразовый элемент в CollectionView с помощью xib? – SpaceInvader

+0

То же самое. Вместо добавления ** UICollectionViewCell ** в файл Xib добавьте ** UICollectionReusableView **. Кроме того, не забудьте создать класс путем подкласса ** UICollectionReusableView **. Кроме того, не забудьте использовать '[self.collectionView registerNib: [UINib nibWithNibName: @ "YourReusableViewXibNameGoesHere" пачке: ноль] forSupplementaryViewOfKind: ** (UICollectionElementKindSectionHeader ИЛИ UICollectionElementKindSectionHeader ЗДЕСЬ) ** withReuseIdentifier: @ "yourReusableViewXibIdentifierGoesHere"];' зарегистрировать ReusableView. Создайте локальную переменную вашего представления, инициализируйте ее один раз. –

+0

ОК. Я добавил в ReusableView SearchBar, но ошибку: 'invalid nib, зарегистрированный для идентификатора (ReusableView) - nib должен содержать ровно один объект верхнего уровня, который должен быть экземпляром UICollectionReusableView'. Как это исправить? – SpaceInvader

0

Что вы можете сделать, это продлить UIView и имеют два подвидов внутри него. Один, a UISearchBar и под ним, UICollectionView. Вы можете реализовать соответствующих делегатов из UISearchBar и UICollectionView и разместить весь этот вид везде, где захотите.

Вы можете сделать это через xib очень легко.

+0

Спасибо за ответ. Можете ли вы показать пример? – SpaceInvader

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