2015-10-30 2 views
0

У меня проблема, и я не могу найти ответ на StackOverflow и в гугле к этому, я получил UICollectionVIew с этим форматом:Дайте запас на одну конкретную ячейку, UICollectionVIew

_______ 
|xxxxxxx| 
| xxxxx | 
| xxxxx | 
| xxxxx | 
| xxxxx | 
|_______| 

и я хочу, чтобы дать маржа в первой ячейке, чтобы получить что-то вроде этого:

_______ 
|xxxxxxx| 
|  | 
| xxxxx | 
| xxxxx | 
| xxxxx | 
|_______| 

Я пытался дать запас в клетку, но, что дает запас для каждой отдельной ячейки и ее не то, что я хочу, только для этого одну ячейки с indexPath.item == 0.

это возможно? если нет, что я могу сделать, чтобы достичь этого макета? заблаговременно

ответ

1

Вы используете UICollectionViewFlowLayout? Если это так, я бы рекомендовал использования в целях заголовка для первой ячейки:

_______ 
|xxxxxxx| 

и резерв UICollectionViewCell для остальных элементов:

| xxxxx | 
| xxxxx | 
| xxxxx | 
|_______| 

UICollectionView поддерживает три различных типа элементов;

  • Клетки
  • Дополнительные Просмотров
  • украшения Просмотров

UICollectionViewFlowLayout предоставляет два готовых к использованию Дополнительных Views, вид заголовка и вид колонтитулов. Представление заголовка идеально подходит для ваших нужд.

После того, как вы внедрили представления заголовков, описанную вами маржу можно достичь, отрегулировав свойство . Или реализации метода делегата:

- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section; 


Там куча материала в Интернете, описывающего мнения/колонтитулы;

http://www.appcoda.com/supplementary-view-uicollectionview-flow-layout/

Я также рекомендую Collection View Programming Guide for iOS - это длинный, но отлично читать. Особенно, если вам когда-либо понадобится настроить какие-либо пользовательские макеты.

Надеюсь, что это поможет.

+0

Итак, как я мог запустить indexpath.item в 1 вместо 0 в collectionVIew? поскольку заголовок будет первым указателем if (indexPath.item == 0) {return cell}? –

+0

Элементы сотовой связи, дополнительные представления и декорации сохраняют свои собственные пути указателей, поэтому добавление заголовка не влияет на путь индекса первой ячейки до (0,1), первое представление заголовка и первая ячейка будут совместно использовать индекс путь (0,0). Поэтому, когда вы реализуете 'collectionView: cellForItemAtIndexPath:', вы просто возвращаете типы ячеек, индексированные с 0,0.Для представления заголовка вы должны реализовать 'collectionView: viewForSupplementaryElementOfKind: atIndexPath:' и вернуть заголовок. Это также индексируется от 0,0. Я надеюсь, что в этом есть смысл. –

+0

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

0

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

+0

Это простой способ сделать это, и мне удалось сделать это с вашим ответом, но я думаю, что другой ответ является самым правильным. Я могу ошибаться, если я скажу, пожалуйста, просто хочу, чтобы лучший способ сделать это правильно –

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