我正在制作一个用于跟踪点数的应用,基本上用户可以使用他们的名称和默认值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;
}
答案 0 :(得分:0)
在
- ( UICollectionViewCell* ) collectionView:( UICollectionView* ) collectionView
cellForItemAtIndexPath:( NSIndexPath* ) indexPath{
UICollectionViewCell *cell = [ collectionView dequeueReusableCellWithReuseIdentifier:cellIdentifier
forIndexPath:indexPath ];
// ....
只需添加
cell.contentView.backgroundColor = your_color;
答案 1 :(得分:0)
您可以在单元格后面的任何对象(如果有)上设置标志,并在cellForItemAtIndexPath
中根据此标志设置背景颜色。
如何为用户提供此选择将取决于"添加单元格"功能已实现。如果你向我们展示你的代码,我可能会更具体,或者给你一个例子。