在视图打开时默认显示以前选定的单元格,UICollectionView

时间:2013-06-01 06:08:54

标签: iphone ios

我正在创建一个座位图,已经预订的座位很少而其他人可以,所以,我需要以不同颜色显示已预订的座位和可用座位。下面是我用于显示选定和取消选择的单元格的代码,但是如何使已经预订的单元格已经被选中。

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
UICollectionViewCell *cell = [self.collectionView dequeueReusableCellWithReuseIdentifier:@"Cell" forIndexPath:indexPath];
NSLog(@"indexpath row:%d", indexPath.row);
int v;
NSString *cnt = [NSString stringWithFormat:@"%@",[arrSeats objectAtIndex:indexPath.section]];
v = [cnt intValue];
if(indexPath.item < v)
{
        if(cell.selected){
            cell.contentView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"yelow_seat.png"]];  // highlight selection
        }
        else
        {
            cell.contentView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"blue_seat.png"]]; // Default color
        }

        }else{
    cell.contentView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"blank_seat.png"]];
}
return cell;
}

以下是我尝试用于为每个部分添加值的代码。每次数组为一个部分添加值时,它会将其添加到字典中,然后清除数组,下次数组为下一部分添加值时再次放入字典,但是当数组对象被删除时,字典不会保留该值。

arrStatus = arrSeatsStatus;
        [seatsDict setObject:arrStatus forKey:[NSString stringWithFormat:@"%d",i]];
        i++;
        [arrSeatsStatus removeAllObjects];

我有一个数组,可以将所有座位的状态保持为开启或关闭,但是如何实现它并没有得到。请指导以上。 提前谢谢。

1 个答案:

答案 0 :(得分:1)

检查此链接以查看单元格突出显示

http://developer.apple.com/library/ios/#documentation/WindowsViews/Conceptual/CollectionViewPGforIOS/CreatingCellsandViews/CreatingCellsandViews.html

或做一个为单元格创建标签或imageview,并检查相应的元素是否与您的数组元素匹配,然后检查它们的状态,如果匹配则放置一些图像或为该项目指定颜色匹配留空。

如果不能正常工作请告诉我,我会帮助你