将顶部标题添加到已包含带标题的节的UICollectionview

时间:2015-04-19 13:45:10

标签: ios objective-c uicollectionview

假设我有一个包含节和项的UICollectionview。 对于每个部分,我生成一个标题作为下面的代码。

问题:如何向collectionView本身添加顶部标题视图 这与下面的部分标题不同(使用objective-c,IB,Auto Layouts)

- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath
{
    UICollectionReusableView *reusableview = nil;




    if (kind == UICollectionElementKindSectionHeader) {
        HeaderCollectionReusableView *headerView = [self.collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"header" forIndexPath:indexPath];


        headerView.label1.text = "This is a section title";

        reusableview = headerView;
    }



    return reusableview;
}

2 个答案:

答案 0 :(得分:0)

在一个视图中使用当前标题视图和顶部标题视图为第一部分生成另一个标题。不要忘记在collectionView:layout:referenceSizeForHeaderInSection:中为第一部分返回更大的尺寸。

enter image description here

答案 1 :(得分:0)

我会采取以下措施来实现目标:

  1. 在你的故事板中,创建一个UIView并根据需要设计它的子视图。请确保您正在查看刚刚创建的UIView的clipToBounds复选框。

  2. 创建约束。我猜它应该是前0,左0,右0,当然还有0(因为这是你提到的初始状态)。

  3. 为高度约束创建IBOutlet并将其连接到刚刚创建的高度约束。我们称之为viewHeaderHeightConstraint

  4. 当您想要显示此视图时:

    self.viewHeaderHeightConstraint.constant = 50; // Or any other value
    [self.view layoutIfNeeded];
    
  5. 如果您想为高度变化设置动画:

    self.viewHeaderHeightConstraint.constant = 50; // Or any other value
    [UIView animateWithDuration:0.3 animations:^{
    
        [self.view layoutIfNeeded];
    
    } completion:^(BOOL finished) {
    
        // Do something after completion
    
    }];