我正在尝试根据细胞类型在细胞上设置不同的图像。每个部分都有不同类型的细胞。至少有两种类型,比如座位图中有座位,所以传说可用座位,预订,残疾人座位和选定座位。我没有得到的是如何识别细胞并相应地分配它们的图像。我得到了总席位和残疾人席位。在这里,残疾人座位是例如我有20个座位,并且连续我显示9个座位所以将有三个行产生9,9和2个座位,我已经完成它到27个所以所有三行充满了座位,这7个额外的座位是残疾人座位。我现在如何管理这些。如果有什么不清楚,请随时询问。
这是我到目前为止所尝试过的。
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{
NSLog(@"vals count:%d", [arrSeats count]);
for(int i=0; i<[arrLevels count]; i++)
{
if(section == i)
{
int v;
NSString *cnt = [NSString stringWithFormat:@"%@",[arrTot objectAtIndex:i]];
v = [cnt intValue];
if(v<=9)
{
return 9;
}
else{
int numOfRow = v/9; //2
if(v % 9 > 0)
numOfRow +=1; //2+1 = 3
int c = numOfRow*9;
return c;
}
}
}
return 1;
}
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
UICollectionViewCell *cell = [self.collectionView dequeueReusableCellWithReuseIdentifier:@"Cell" forIndexPath:indexPath];
int v;
NSString *cnt = [NSString stringWithFormat:@"%@",[arrTot objectAtIndex:indexPath.section]];
v = [cnt intValue];
if(v < 9)
{
if(cell.selected){
cell.contentView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"yellow_seat.png"]]; // highlight selection
}
else
{
cell.contentView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"blue_s.png"]]; // Default color
}
}else{
int numOfRow = v/9; //2
if(v % 9 > 0)
numOfRow +=1; //2+1 = 3
int c = numOfRow*9;
int get = c-v;
for(int i=0; i<get; i++)
{
cell.contentView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"blank_seat.png"]];
}
}
return cell;
}
答案 0 :(得分:1)
UIColoectionView我们得到indexPath,它给出了单元格的节和项目号。所以检查indexPath.row。如果少于20则检查cell.selected。如果大于20则它们是空白的。我写了一些代码。请检查正确的逻辑
int v;
NSString *cnt = [NSString stringWithFormat:@"%@",[arrTot objectAtIndex:indexPath.section]];
v = [cnt intValue];
if(indexPath.row < v)
{
if(v < 9)
{
if(cell.selected){
cell.contentView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"yellow_seat.png"]]; // highlight selection
}
else
{
cell.contentView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"blue_s.png"]]; // Default color
}
}
}
else
{
cell.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"blank_seat.png"]];
}