3

我正在嘗試在App Store中創建一個標題。當用戶拖拽時,標題保持原位,只有單元格向下滾動。但是,當用戶拖動時,標題和單元格都會向上滾動。IOS - 粘性UICollectionView標題(如Apple App Store)

我迄今所做的設置我collectionView背景以我想堅持到頂部,設置collectionView圖像下方的contentInsets形象。這種方式當用戶拖拽時,圖像將保持原樣。但是當用戶拖動時,我的單元格覆蓋圖像(我想讓圖像與單元格向上滾動)。我想我正在討論這個錯誤。謝謝。


UIView *back = [UIView new]; 
UIImageView *backImage = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 320, 320)]; 
backImage.image = [UIImage imageWithData:coverData]; 
[back addSubview:backImage]; 
self.collectionView.backgroundView = back; 

[self.collectionView setContentInset:UIEdgeInsetsMake(300, 0, 0, 0)]; 

編輯 我以前the tutorial from this question但確實我想的正好相反,我不確定如何更改代碼,以適合我的需要

+0

的可能重複[UICollectionView帶有粘性頭(HTTP:/ /stackoverflow.com/questions/15233180/uicollectionview-with-a-sticky-header) – BSMP

+0

@BSMP我用這個問題的代碼,它做了我想要的相反。當我拖動標題滾動內容時,並且當我拖動標題保持原位時。但這可能是一個好的開始。你知道如何改變該教程中的代碼以適應我的問題嗎? – Peter

+0

您應該瞭解您添加的代碼,而不是將「Voodoo」代碼添加到您的項目中......據說您需要查看'layoutAttributesForSupplementaryViewOfKind''UIFlowLayout'委託,並將frame.origin.y更改爲'frame .origin.y = contentOffset.y;' – Lefteris

回答

0

好吧,我明白了。如果您正在使用從鏈接question-

更改發佈教程

origin.y = MIN(
       MAX(
        contentOffset.y, 
        (CGRectGetMinY(firstCellAttrs.frame) - headerHeight) 
       ), 
       (CGRectGetMaxY(lastCellAttrs.frame) - headerHeight) 
      ); 

爲了這

origin.y = MIN(
         contentOffset.y, 
         (CGRectGetMinY(firstCellAttrs.frame) - headerHeight) 
         );