1

我得到了一個UICollectionView,它是以編程方式創建的。我想有一個集合視圖在以下方向的行爲:UICollectiveViewCell中的UIView無法隱藏

  1. 用戶觸摸細胞
  2. 隱藏的UIView覆蓋圖像
  3. 用戶觸摸細胞再次
  4. 顯示的UIView以覆蓋圖像

1)之前在小區內的用戶觸摸圖像看起來像這樣

http://upload.siamza.com/1811355

2)後在小區內的用戶觸摸圖像就會看起來像這樣

http://upload.siamza.com/1811359

3)如果用戶觸摸圖像再次它會看起來像1)

現在我的選擇和取消是這個樣子:

- (void)collectionView:(UICollectionView *)collectionView didDeselectItemAtIndexPath:(NSIndexPath *)indexPath 
{ 
    if(collectionView == genrescollectView){ 

    genresRecCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"genresRecCell" forIndexPath:indexPath]; 

     cell.checkforselectView.hidden = FALSE; 

    } 
} 

-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath 
{ 
    if(collectionView == genrescollectView){ 

    genresRecCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"genresRecCell" forIndexPath:indexPath]; 
     cell.checkforselectView.hidden = TRUE; 

    } 
} 

,但看到在

不工作

cell.checkforselectView.hidden = FALSE;

and

cell.checkforselectView.hidden = TRUE;

我已經通過添加 cell.checkforselectView.hidden = FALSE檢查cellForItemAtIndexPath是否工作。

,它工作,所以我不知道任何人都可以幫我解決這個問題,這是現在在cellForItemAtIndexPath

-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{ 

     genresRecCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"genresRecCell" forIndexPath:indexPath]; 
     NSString *imageGenres = [genresData objectAtIndex:indexPath.row]; 
     cell.genresImage.image = [UIImage imageNamed:imageGenres]; 
     NSString *textToParse = imageGenres; 
     NSArray *components = [textToParse componentsSeparatedByString:@"."]; 
     NSString *genresText = [components firstObject]; 
     cell.labelGenres.text = genresText; 
     cell.genresImage.layer.cornerRadius = 10.0f; 
     cell.genresImage.layer.masksToBounds = YES; 

     //---------> this is where I check whether it work or not(and it work). 
     cell.checkforselectView.hidden = FALSE; 

     return cell; 

} 

預先感謝:)

回答

2

-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath 

使用

[collectionView cellForItemAtIndexPath:indexPath]

而不是離開新單元

+0

非常感謝你,現在它的工作! – 2015-03-09 11:00:23

+0

我一直在梳理網絡4個小時尋找類似問題的解決方案,這也解決了我的問題,謝謝! – pricetag 2015-12-27 21:36:55