2017-03-09 55 views
0

我從一個很長的時間進行恢復,這是以前的工作應用程序,所以我假設它的下跌在新版本的iOS操作系統的變化。圖像UICollectionView不顯示從NSMutableArray的

當我在模擬器上運行應用程序時,沒有顯示圖像,但正在創建單元並顯示名稱。我知道我必須在某處失去一些東西,但不能在我的生活中看到它,但是我不熟悉最近的變化。

任何幫助深表感謝,這是我的代碼:

- (void)createData { 

    self.graniteImages = [NSMutableArray array]; 

    [self.graniteImages addObject:[[NSMutableDictionary alloc] 
            initWithObjectsAndKeys:@"Angel Cream", @"name", 
            @"angel-cream.jpg", @"image", nil]]; 
    [self.graniteImages addObject:[[NSMutableDictionary alloc] 
            initWithObjectsAndKeys:@"Angola Black", @"name" , 
            @"angola_black1.jpg", @"image" , nil]]; 
    [self.graniteImages addObject:[[NSMutableDictionary alloc] 
            initWithObjectsAndKeys:@"Angola Silver", @"name" , 
            @"angola-silver1.jpg", @"image" , nil]]; 

    [self.collectionView reloadData]; 

} 

- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { 
    return self.graniteImages.count; 
} 


- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{ 
    static NSString *identifier = @"Cell"; 

    UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:identifier forIndexPath:indexPath]; 

    UIImageView *graniteImageView = (UIImageView *)[cell viewWithTag:100]; 
    graniteImageView.image = [UIImage imageNamed:[[self.graniteImages objectAtIndex:indexPath.row] objectForKey:@"image"]]; 

    return cell; 
} 

- (void)scrollViewDidScroll:(UIScrollView *)scrollView { 
    if (_startingIndexPath) { 
     NSInteger currentIndex = floor((scrollView.contentOffset.x - scrollView.bounds.size.width/1)/scrollView.bounds.size.width) + 1; 
     if (currentIndex < [self.graniteImages count]) { 
      self.title = self.graniteImages[currentIndex][@"name"]; 
     } 
    } 
} 
+2

你可以試試,看看imageNamed返回的實際圖像,也許有事與資產,就可以加載名稱那些圖像,別的地方? – JackRobinson

+0

看起來有可能您使用的文件名不是資產名稱。 – torinpitchers

+0

您的圖片在資產文件中?然後嘗試刪除'.jpg'擴展名。 @JackRobinson可能是對的,你的圖片可能不會被加載。 – vitormm

回答

0

解決了!

試圖對圖像文件夾進行過於嚴格的組織,然後對每個類別使用子文件夾。

當我將所有從子文件夾移動到圖像文件夾時,他們都開始顯示!

感謝您的幫助!

+0

@JackRobinson感謝讓我檢查我很喜歡這麼多的代碼,它只是在移動文件後必須重新編制索引它,它工作...許多小時的挫折治好了大聲笑 – David

0

你建立在故事板項目?關於您創建的UICollectionViewCell以及graniteImageView從 [cell viewWithTag:100]返回的調試信息是什麼? 請確保您將graniteImageView添加到單元格並且具有正確的框架,請檢查您的單元格並且圖像是否有效。

0

我得到了相同的issue.And我的問題是這樣,我創建的UIImageView編程

的UIImageView * graniteImageView = [[UIImageView的頁頭] initWithFrame使用下面code.In解決:CGRectMake(0,0,cell.frame.size .width,cell.frame.size.height)];

graniteImageView.image = [UIImage imageNamed:[[self.graniteImages objectAtIndex:indexPath.row] objectForKey:@"image"]]; 

graniteImageView.contentMode = UIViewContentModeScaleAspectFit; 

graniteImageView.tag = indexPath.row;// Add here what tag you need 

[cell addSubview:graniteImageView];