UICollectionviewcell 中未显示数据?

Posted

技术标签:

【中文标题】UICollectionviewcell 中未显示数据?【英文标题】:Data not displayed in UICollectionviewcell? 【发布时间】:2016-04-04 15:47:15 【问题描述】:

我在 UICollectionviewcell.my 中创建一个 UIImageview 和两个 UILables 存储在 NSArray 和格式中的数据是 NSDictionary ,键和值。但数据未显示在 UICollectionviewCell 中。这是我的代码请检查我的代码。

//---- ItemviewController ---//
  mensarrayimages = @[ @ @"description": @"Mens Fashion",
                      @"articles": @[ @ @"image": @"SlimFit.jpg" ,
                                      @ @"image": @"Brown.jpg" ,
                                      @ @"image": @"Black.jpg" ,
                                      @ @"image": @"Brown.jpg" ,
                                      @ @"image": @"SlimFit.jpg" ,
                                      @ @"image": @"SlimFit.jpg" ,
                                      @ @"image": @"Brown.jpg" ,
                                      @ @"image": @"Black.jpg" ,
                                      @ @"image": @"Brown.jpg" ,
                                      @ @"image": @"SlimFit.jpg" 
                                      ],
                               @"itemname":  @[ @ @"name": @"SlimFit",
                                                @ @"name": @"BrownSlimFit",
                                                @ @"name": @"SlimFit",
                                                @ @"name": @"BrownSlimFit",
                                                @ @"name": @"SlimFit",
                                                @ @"name": @"SlimFit",
                                                @ @"name": @"BrownSlimFit",
                                                @ @"name": @"SlimFit",
                                                @ @"name": @"BrownSlimFit",
                                                @ @"name": @"SlimFit"
                                                ],
                            @"itemprice": @[ @ @"price": @"1499",
                                             @ @"price": @"1599",
                                             @ @"price": @"1399",
                                             @ @"price": @"1599",
                                             @ @"price": @"1499",
                                             @ @"price": @"1499",
                                             @ @"price": @"1599",
                                             @ @"price": @"1399",
                                             @ @"price": @"1599",
                                             @ @"price": @"1499"
                                             ],
                            ,
];
//---UITableview--///

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
    return [mensarrayimages count];


-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
    //return [modaldatabase.imagesArray count];
    return 1;


-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
   // static NSString *cellidentifier =@"cell";


        MensCell *cell = [itemTableview dequeueReusableCellWithIdentifier:@"MensCell"];
        //------ NSDictinary------

         cellData = [mensarrayimages objectAtIndex:[indexPath section]];
         priceData = [mensarrayimages objectAtIndex:[indexPath section]];
         priceData1 = [mensarrayimages objectAtIndex:[indexPath section]];

       //--- NSARRAY---

        NSArray *articleData = [cellData objectForKey:@"articles"];
        NSArray *itemnamedata = [priceData objectForKey:@"itemname"];
        priceArr = [priceData1 objectForKey:@"itemprice"];

       [cell setCollectionData:articleData];
       [cell setCollectionData1:itemnamedata];
       [cell setCollectionData2:priceArr];

       return cell;



//------ UICollectionview ---///
//-- CollectionviewController--//

- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView 
    return 1;


- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section 
    return [self.collectionarray count];


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


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

    NSDictionary *cellDataname = [self.collectionarray objectAtIndex:[indexPath row]];
    NSLog(@"%@",cellDataname);
    NSDictionary *cellDataimage = [self.arrayImage objectAtIndex:[indexPath row]];
    NSLog(@"%@",cellDataimage);
    NSDictionary *cellDataprice = [self.arrayprice objectAtIndex:[indexPath row]];
    NSLog(@"%@",cellDataprice);

    cell.ItemImageName.image =[UIImage imageNamed:[NSString stringWithFormat:@"%@",[cellDataimage objectForKey:@"image"]]];
    cell.ItemName.text = [cellDataname objectForKey:@"name"];
    cell.ItemPrice.text = [cellDataprice objectForKey:@"price"];

    return cell;

UITableviewcell -> UICollectionviewController -> UICollectionviewCell .

【问题讨论】:

【参考方案1】:

这是一个相当模糊的问题。不过,可能是 UI 结构有点不对?

UITableView -> UICollectionViewController -> UICollectionViewCell

这是我还没有看到有人尝试过的事情。从我在这里看到的情况来看,您应该回溯到使用简单的 UITableView 或 UICollectionView 但不能同时使用两者。使用任一:

UITableViewController -> UITableView -> UITableViewCell

UICollectionViewController -> UICollectionView -> UICollectionViewCell

我建议使用第一个,因为 UITableViews 通常更容易编码和维护

【讨论】:

以上是关于UICollectionviewcell 中未显示数据?的主要内容,如果未能解决你的问题,请参考以下文章

Xcode @2x 图像后缀在 iOS 中未显示为 Retina

UICollectionViewCell 将被显示/被显示?

检测是不是正在显示 UICollectionViewCell

UICollectionViewCell 不显示图像

如何确定何时显示 UICollectionViewCell?

UICollectionViewCell「居左显示」