Я пытаюсь создать таблицу, в которой каждая ячейка может иметь переменную высоту и отображать разные типы данных.
Для требований к высоте я нашел этот классный механизм компоновки под названием «Xib-free» ( http://www.toptensoftware.com/xibfree/uitableviewcell_variable ). Я думал, что это также поможет с разными типами клеток, но, увы, в их примерах также использовался только один тип клеток.
Я знаю, что возможны несколько типов ячеек (например, один только с изображением, один только с текстом, один с обоими и т. д.), поскольку я видел много примеров в Objective-C, выполняющих это, используя следующее (взято из Вызов двух разных пользовательских ячеек в одной проблеме UITableView):
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath: (NSIndexPath *)indexPath {
if (indexPath.section == 0) {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1
reuseIdentifier:CellIdentifier];
}
containerObject = [objectCollection objectAtIndex:indexPath.row];
[[cell textLabel] setText:containerObject.store];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
return cell;
} else {
static NSString* cellIdentifier1 = @"FeatureCell";
FeatureCell *cell1 = (FeatureCell*)[tableView dequeueReusableCellWithIdentifier:cellIdentifier1];
if (cell1 == nil) {
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:cellIdentifier1 owner:nil options:nil];
cell1 = (FeatureCell*)[nib objectAtIndex:0];
}
cell1.img1.image = [UIImage imageNamed:@"shower.png"];
cell1.img2.image = [UIImage imageNamed:@"parking.png"];
return cell1;
}
}
Конечно, в Monotouch нет cellForRowAtIndexPath, но я уверен, что этого можно добиться с помощью GetCell. Я говорю довольно уверенно, потому что я не смог заставить это работать.
Вот мой мыслительный процесс:
-Различный пользовательский класс ячеек для каждого типа ячеек, которые я хочу
- в методе GetCell я бы добавил каждую ячейку в зависимости от NSIndex, аналогично коду выше.
Еще одна вещь, которую я пытаюсь выполнить, - это иметь один тип ячейки, содержащий только изображение. Я не уверен, как это сделать, поскольку стили для ячеек включают только текст или текст с изображением слева.
Это отличный пример того, что я пытаюсь сделать: http://img0.mobile-patterns.com/img/full/1386265829522-2013-12-03%2020.35.26.png
Извините за длинный вопрос, но мне действительно не помешала бы помощь. Я чувствую, что очень близок к мыслительному процессу, но нуждаюсь в некотором руководстве. Заранее большое спасибо.