Nano Hash - криптовалюты, майнинг, программирование

Monotouch — несколько пользовательских ячеек таблицы с переменной высотой в UITableView

Я пытаюсь создать таблицу, в которой каждая ячейка может иметь переменную высоту и отображать разные типы данных.

Для требований к высоте я нашел этот классный механизм компоновки под названием «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

Извините за длинный вопрос, но мне действительно не помешала бы помощь. Я чувствую, что очень близок к мыслительному процессу, но нуждаюсь в некотором руководстве. Заранее большое спасибо.



Ответы:


1

Вы можете использовать метод GetCell для того, что вы хотите сделать. Кроме того, вы можете создать подкласс UITableViewCell и реализовать макет по своему усмотрению. Для этого можно использовать даже верстальщика. У вас есть GetHeightForRow (или что-то подобное), где вы можете определить высоту для строки с индексом и разделом (которые передаются в качестве аргументов функции), поэтому вы можете иметь разные высоты для разных ячеек таблицы.

Я надеюсь, что это может пнуть вас в правильном направлении.

09.01.2014
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..