Подтвердить что ты не робот

UICollectionView специальный горизонтальный поток - несколько секций

У меня UICollectionView используется по-разному в зависимости от ориентации устройства. Изображение описывает то, что у меня есть и что мне нужно.

Можно ли получить "Горизонтальную прокрутку по мере необходимости" с расписанием по умолчанию или мне нужно сделать customflowlayout (руководство оценено) или несколько коллекций?

Collection flow layout

4b9b3361

Ответ 1

Я решил это, используя DateFlowLayout. Странное имя, но оно работает, с некоторыми конфигурациями.

Это была моя установка для вас (я использовал ее только в горизонтальном направлении):

- (void)layoutForOrientation:(UIInterfaceOrientation)orientation {
    bool isPortrait = UIInterfaceOrientationIsPortrait(orientation);

    self.collectionView.frame = isPortrait ? CGRectMake(0, 0, 768, 180) : CGRectMake(0, 60, 246, 595);
    self.collectionView.collectionViewLayout = isPortrait ? DateFlowLayout.new : UICollectionViewFlowLayout.new;
    self.flowLayout = ((UICollectionViewFlowLayout *)self.collectionView.collectionViewLayout);

    self.flowLayout.scrollDirection = isPortrait ? UICollectionViewScrollDirectionHorizontal : UICollectionViewScrollDirectionVertical;
    self.flowLayout.headerReferenceSize = isPortrait ? CGSizeMake(5, 30) : CGSizeMake(246, 40); //width is margin to the left of the header - must be bigger than 0 to show headers correct.
    self.flowLayout.minimumInteritemSpacing = isPortrait ? 10 : 0;
    self.flowLayout.minimumLineSpacing = isPortrait ? 17 : 7;
    self.flowLayout.sectionInset = isPortrait ? UIEdgeInsetsMake(27, 30, 25, 0) : UIEdgeInsetsMake(0, 14, 0, 0);
    //self.flowLayout.itemSize = CGSizeMake(58, 85); //You might need this
    self.collectionView.alwaysBounceVertical = isPortrait ? NO : YES;
}