2015-06-05 90 views
0

有沒有方法將半透明疊加添加到點擊的CollectionViewCell上? (我想在用戶點擊單元格時將整個單元格「變暗」)。在點擊後向CollectionViewCell添加疊加

我找到了一種方法來改變背景顏色,但我不知道是否有添加覆蓋的方法。

- (void)collectionView:(UICollectionView *)collectionView didHighlightItemAtIndexPath:(NSIndexPath *)indexPath { 
    UICollectionViewCell *cell = [collectionView cellForItemAtIndexPath:indexPath]; 

    [UIView animateWithDuration:0.1 delay:0 options:(UIViewAnimationOptionAllowUserInteraction) animations:^{ [cell setBackgroundColor:[UIColor colorWithRed:232/255.0f green:232/255.0f blue:232/255.0f alpha:1]]; } completion:nil]; 
} 

EDIT

我加入的UIView具有半透明背景的細胞一旦它的抽頭:

- (void)collectionView:(UICollectionView *)collectionView didHighlightItemAtIndexPath:(NSIndexPath *)indexPath { 
    UICollectionViewCell *cell = [collectionView cellForItemAtIndexPath:indexPath]; 

    UIView *overlay = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 172, 210)]; 
    overlay.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.1]; 
    [cell addSubview:overlay]; 
} 
+0

您是否嘗試過創建一個新的UIView,設置其框架以填充單元格,使其半透明並將其添加爲單元格的子視圖? – luk2302

+0

「有一種方法可以將一個半透明覆蓋圖添加到點擊它的CollectionViewCell上」是的,有。 – matt

+0

一旦觸及它,我在單元格中添加了一個UIView。我如何刪除它?我猜我必須添加一些代碼didUnhighlightItemAtIndexPath。 @ luk2302 – chrisbedoya

回答

0

的最簡單的解決方案,我發現,是要添加到小區,從一開始,一個沒有圖像但帶有高亮圖像的UIImageView:

UIImageView* iv = [[UIImageView alloc] initWithImage:nil highlightedImage:im]; 
iv.userInteractionEnabled = NO; 
[cell addSubview: iv]; 

結果是圖像im在單元格被突出顯示(選中)時(並且僅當該單元格被突出顯示時)會在單元格中奇蹟般地變爲可見。