Как изменить высоту одной ячейки в таблице?

Possible Duplicate:
Define height of one specific table cell

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

5
nl ja de
Да, это точно так же. Когда вы будете готовы изменить высоту ячейки, просто вызовите [self.tableView reloadData] или [self.tableView reloadRowsAtIndexPaths ...] и передайте правильное значение для высоты в heightForRowAtIndexPath .
добавлено автор Jack Humphries, источник
@JackHumphries Я не хочу устанавливать высоту ячейки в первый раз. После отображения ячейки я хочу снова изменить высоту ячейки. Точно так же?
добавлено автор ZhouQi, источник
@JackHumphries reload очистит содержимое, которое уже находится в ячейке. Может ли любой метод изменить его высоту, но не повторить его?
добавлено автор ZhouQi, источник

1 ответы

Вы можете изменить высоту ячеек в tableview: hightOfRowAtIndexPath :.

Например:

- (CGFloat)tableView:(UITableView *)aTableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    CGFloat retVal =0.0f;

    if(indexPath.section==//the section you want )
    {
        if(indexPath.row==//the row you want)
        {
            retVal=10.0f;//the height you want.
        }
        else
            retVal=50.0f;
    }
    else 
        retVal=50.0f;

    return retVal;
}
1
добавлено
@ZhouQi. Вы бы (а) имели свой heightForRowAtIndexPath проверку некоторого ivar на то, должен ли он использовать стандартную высоту или использовать расширенную высоту; и (b) после того, как вы установили этот ivar, вы просто вызываете reloadRowsAtIndexPaths
добавлено автор Rob, источник
@ZhouQi Вы сказали, что «перезагрузить строки очистит содержимое ячейки». Это не будет, если вы сохраните текущее значение текстового вида в некоторых ivar (или где-нибудь в своей модели) и убедитесь, что cellForRowAtIndexPath захватывает его.
добавлено автор Rob, источник
@ZhouQi Рад, что вы нашли решение.
добавлено автор Rob, источник
Я не хочу сначала устанавливать высоту ячейки. После отображения ячейки я хочу снова изменить высоту ячейки. Точно так же? @Rob
добавлено автор ZhouQi, источник
@Rob reload rows очистит содержимое ячейки.
добавлено автор ZhouQi, источник
@Rob моя ячейка имеет textview, и я хочу, когда вы вводите некоторый контент в textview, textview станет более чем одной строкой. поэтому высота клетки тоже станет большой.
добавлено автор ZhouQi, источник
@Rob Я обнаружил, что beginUpdates tableview и endUpdates могут просто обновлять высоту без перезагрузки.
добавлено автор ZhouQi, источник
@Rob спасибо :).
добавлено автор ZhouQi, источник
Вам просто нужно установить переменную BOOL. Если вам нужна измененная высота, просто установите BOOL и reloadRowsAtIndexPath, чтобы изменить высоту. Если вы хотите изменить высоту в соответствии с текстом textview, вы можете установить BOOL в методе делегата textView (например, : textViewDidChange :) и вызвать reloadRows .. в этом, когда вы хотите увеличить высоту.
добавлено автор Divya, источник
Mobile Dev Jobs — вакансии и аналитика
Mobile Dev Jobs — вакансии и аналитика
6 187 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению iOS, Android, Xamarin и т.д. ВАЖНО: Правила публикации и правила канала: Ссылка – https://telegra.ph/Pravila-oformleniya-vakansij-i-rezyume-11-09-2

iOS Developers — русскоговорящее сообщество
iOS Developers — русскоговорящее сообщество
2 400 участник(ов)

Общаемся на темы, посвященным iOS-разработке, Swift, Objective-C, SDK, Rx, Cocoa и т.д.