2015-05-02 5 views
8

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

Любая помощь?

ответ

17

Внесите collectionView:viewForSupplementaryElementOfKind:atIndexPath: и поставьте deecued UICollectionElementKindSectionHeader, содержащий вашу метку. Если это макет потока, обязательно установите headerReferenceSize или вы все равно ничего не увидите.

+1

Пример кода здесь: https://github.com/mattneub/Programming-iOS-Book-Examples/blob/master/bk2ch08p462collectionViewFlowLayout/ch21p748collectionViewFlowLayout/ViewController.swift – matt

2

С @ david72 отвечают

Вам необходимо выполнить следующие действия:

  1. Включить Разрез заголовка/нижнего колонтитула в раскадровку.
  2. Внедрение collectionView:viewForSupplementaryElementOfKind метод.

Для получения дополнительной информации см here

2

Чтобы добавить пользовательскую метку выше каждой секции в UICollectionView, пожалуйста, следуйте ниже шаги

  1. Включить заголовок раздела в UICollectionViewCell

enter image description here

  1. Добавить новый файл типа UICollectionReusableView
  2. В раскадровке измените класс заголовка раздела в UICollectionViewCell на вновь добавленный файл типа UICollectionReusableView.
  3. Добавить метку в разделе заголовка UICollectionViewCell в раскадровке
  4. Подключите метку в заголовке раздела в файл UICollectionReusableView

    class SectionHeader: UICollectionReusableView { 
        @IBOutlet weak var sectionHeaderlabel: UILabel! 
    } 
    
  5. В ViewController добавить код ниже

    func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView { 
    
        if let sectionHeader = collectionView.dequeueReusableSupplementaryView(ofKind: kind, withReuseIdentifier: "SectionHeader", for: indexPath) as? SectionHeader{ 
         sectionHeader.sectionHeaderlabel.text = "Section \(indexPath.section)" 
         return sectionHeader 
        } 
        return UICollectionReusableView() 
    } 
    

Здесь «SectionHeader» - это имя файла, добавленного к типу UICollectionReusableView

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