我正在创建一个应用程序来处理哈雷戴维森爱好者的维护计划。 目前计划的目标是iPad系列。
我希望显示一个网格,显示每次购买燃料的详细信息。以下图片有希望展示我想要实现的目标。
为了得到这个,我正在使用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;
}
我更喜欢的是每个信息都有一个单元格但不确定如何使用UICollectionView实现此目的。
答案 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;
}