UICollectionView允许用户选择单元格颜色

时间:2014-03-12 11:18:27

标签: ios objective-c uicollectionview

我正在制作一个用于跟踪点数的应用,基本上用户可以使用他们的名称和默认值0点向UICollectionView添加新单元格。

我没有这样的问题,我只是不确定如何完成任务。 当用户创建新单元格时,我希望他们能够从4个预定义选项中选择单元格的颜色。

如果有人能向我解释我如何能够实现这一目标,那将是我的一周。

(我试图添加图片来展示我的观点,以便更好地理解,但我没有足够的代表)

编辑:也许我应该提到这是我在工作中的第一个iOS项目,我是一个超级菜鸟,如果有人能向我解释必要的步骤,让这个工作变得很棒。

当用户创建新单元格时,将调用此方法。 (这包含在一个包含所有SQL方法的类中)

+(void) writeData:(NSString*)name {

[self databaseInit];

if (sqlite3_open(dbpath, &peopleDB ) == SQLITE_OK)
{

    NSString *insertSQL = [NSString stringWithFormat:@"INSERT INTO PEOPLE (NAME, POINTS) VALUES (\"%@\", \"%i\")",name, 0];


    const char *insert_stmt = [insertSQL UTF8String];
    sqlite3_prepare_v2( peopleDB, insert_stmt,-1, &statement, NULL);
    if (sqlite3_step(statement) == SQLITE_DONE)
    {
        NSLog(@"Added Successfully");

    }
    else {
        NSLog(@"%s SQLITE_ERROR '%s' (%1d)", __FUNCTION__, sqlite3_errmsg(peopleDB), sqlite3_errcode(peopleDB));
    }
    sqlite3_finalize(statement);
    sqlite3_close(peopleDB);
} 

}

然后在我的ViewController.m(主视图)

- (void)viewDidLoad
{
[super viewDidLoad];
UINib *cellNib = [UINib nibWithNibName:@"customBrownieCell" bundle:nil];
[self.collectionView registerNib:cellNib forCellWithReuseIdentifier:@"cbCell"];
people2 = [[NSMutableArray alloc] init];
[databaseClass createDB];
people2 = [databaseClass getData];

}

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

static NSString *cellIdentifier = @"cbCell";
customCell *cell = (customCell *)[self.collectionView dequeueReusableCellWithReuseIdentifier:cellIdentifier
                                                                                    forIndexPath:indexPath];
PersonObject *a = (PersonObject*)[people2 objectAtIndex:indexPath.row];
cell.nameLabel.text = a.name;
cell.pointsLabel.text = [NSString stringWithFormat:@"%i", a.points];
cell.idLabel.text = [NSString stringWithFormat:@"%i", a.ID];

return cell;

}

2 个答案:

答案 0 :(得分:0)

- ( UICollectionViewCell* ) collectionView:( UICollectionView* ) collectionView 
cellForItemAtIndexPath:( NSIndexPath* ) indexPath{
    UICollectionViewCell *cell = [ collectionView dequeueReusableCellWithReuseIdentifier:cellIdentifier 
forIndexPath:indexPath ];
// ....

只需添加

cell.contentView.backgroundColor = your_color;

答案 1 :(得分:0)

您可以在单元格后面的任何对象(如果有)上设置标志,并在cellForItemAtIndexPath中根据此标志设置背景颜色。

如何为用户提供此选择将取决于"添加单元格"功能已实现。如果你向我们展示你的代码,我可能会更具体,或者给你一个例子。