Хорошо, я просто слишком близок к этому, я думаю. У меня есть столик. В этом табличном представлении все работает, за исключением строки 2 раздела 0.
И - прежде чем кто-нибудь спросит ... Я знаю, что я не использую * imgWordView (в приведенном ниже коде), и поэтому значки не отображаются, но я не знаю, где добавить его в подпредставление, поэтому я может разместить его в координатах в ячейке ...:)
// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
if (indexPath.section == 2 && indexPath.row == 0)
{
cell = [self getCellContentViewForIconRow:CellIdentifier];
cell.backgroundColor = [UIColor grayColor];
}
else
{
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
}
}
Приведенный выше код (кроме моего добавления of my section == 2 && indexPath.row == 0
) является обычным и общим.
getCellContentViewForIconRow
определяется здесь:
- (UITableViewCell *) getCellContentViewForIconRow:(NSString *)cellIdentifier {
ResortsListViewController *resortsListViewController = [[ResortsListViewController alloc] init];
NSMutableArray *categoryArray = [resortsListViewController getCategoriesForLocation:[[locationData objectForKey:@"theid"]intValue]];
[resortsListViewController release];
CGRect CellFrame = CGRectMake(0, 0, 260, 60);
UITableViewCell *cell = [[[UITableViewCell alloc] initWithFrame:CellFrame reuseIdentifier:cellIdentifier] autorelease];
cell.contentView.backgroundColor = [UIColor grayColor];
int x = 10;
int y = 10;
for (NSMutableDictionary *cat_object in categoryArray) {
CGRect Label1Frame = CGRectMake(x, y, x + 40, 40);
UILabel *lblTemp = [[UILabel alloc] initWithFrame:Label1Frame];
lblTemp.tag = x + 1;
NSString *filePath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"alcohol.png"];
UIImage *imgWord = [[[UIImage alloc] initWithContentsOfFile:filePath] autorelease];
UIImageView *imgWordView = [[[UIImageView alloc] initWithImage:imgWord] autorelease];
[cell.contentView addSubview:lblTemp];
[lblTemp release];
x = x + 30;
}
return cell;
}
Хорошо, так что
ResortsListViewController *resortsListViewController = [[ResortsListViewController alloc] init];
NSMutableArray *categoryArray = [resortsListViewController getCategoriesForLocation:[[locationData objectForKey:@"theid"]intValue]];
[resortsListViewController release];
возвращает группу категорий, которые я использовал бы для создания имен файлов для изображений PNG. Пока все в порядке. Затем я перебираю массив, чтобы построить места для изображений в ячейке.
Я ожидаю не более 5 изображений ... 30x30 каждое. Итак, чтобы проверить, я просто использовал существующее имя файла "cohol.png ". Я хочу, чтобы все 5 изображений отображались в строке внутри ячейки
Я уже делаю это:
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.section == 2 && indexPath.row == 0)
{
return 60;
}
}
Но все, что я вижу, - это клетка моего стола (серого цвета, как и должно быть) с длинной белой коробкой внутри.
Итак, два вопроса.
1: коробка (я предполагаю, что это CGRect CellFrame = CGRectMake(0, 0, 260, 60);
) белого цвета. Мне нужно знать, как изменить это на серый ... точно так же, как фон моей клетки.
Основная причина в том, что мои значки белые ... и я не могу сказать, видны ли значки или нет.
Если единственная проблема в том, что этот белый CGRECT скрывает мои значки, то все хорошо.
В противном случае мы подходим к # 2:
2: Это лучший способ поместить группу значков в строку ячейки, когда имена значков находятся внутри массива?
Если нет, то как?
Итак, как мне сделать CGRect серым и как сделать так, чтобы 5 ячеек отображались в ячейке горизонтально?
Заранее спасибо за помощь!