UICollectionView协助

时间:2016-07-08 09:41:36

标签: ios objective-c uicollectionview

我正在创建一个应用程序来处理哈雷戴维森爱好者的维护计划。 目前计划的目标是iPad系列。

我希望显示一个网格,显示每次购买燃料的详细信息。以下图片有希望展示我想要实现的目标。

enter image description here

为了得到这个,我正在使用UICollectionView,因为我认为没有另一个View能够让我了解我的目标。 下面的代码说明了我是如何做到这一点的 - 但我相信这是一个非常粗略的方法:

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

    FuelCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"Cell" forIndexPath:indexPath];
    cell.backgroundColor = [UIColor lightTextColor];
    cell.cellLabel.text = [NSString stringWithFormat:@"  %@               %@                %@               %@",self.fuelDetailsForSelectedBike[indexPath.row][0],self.fuelDetailsForSelectedBike[indexPath.row][1],self.fuelDetailsForSelectedBike[indexPath.row][2],self.fuelDetailsForSelectedBike[indexPath.row][3]];
    return cell;
}

enter image description here

我更喜欢的是每个信息都有一个单元格但不确定如何使用UICollectionView实现此目的。

1 个答案:

答案 0 :(得分:1)

您已经创建了一个自定义单元格FuelCollectionViewCell,这是一个很好的起点。 可能你的故事板中有一个原型单元,子类FuelCollectionViewCell对吗?

在这个单元格中,添加4行UILabel作为您的设计对齐,并使用简单的拖动+ alt(与cellLabel完成一样)将它们“链接”到您的子类.h文件中。

并使用以下内容更新您的cellForItemAtIndexPath方法:

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

    FuelCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"Cell" forIndexPath:indexPath];
    cell.backgroundColor    = [UIColor lightTextColor];
    cell.dateLabel.text     = self.fuelDetailsForSelectedBike[indexPath.row][0];
    cell.litresLabel.text   = self.fuelDetailsForSelectedBike[indexPath.row][1];
    cell.distanceLabel.text = self.fuelDetailsForSelectedBike[indexPath.row][2];
    cell.costLabel.text     = self.fuelDetailsForSelectedBike[indexPath.row][3];
    return cell;
}