как динамически установить высоту в таблице из словаря в iphone - PullRequest
0 голосов
/ 19 августа 2011

В My TableView я вычисляю высоту своей ячейки согласно динамическим данным,

Теперь я хочу сделать одну вещь,

Я хочу рассчитать высоту таблицы только один раз,

после этого я хочу сохранить его в массиве, чтобы при повторном появлении этой строки он не вычислял весь размер.

для этого я хочу объявить словарь. В этом я хочу получить доступ к двум вещам. Высота в целых числах и статус для высоты рассчитывается или нет.

Теперь статус будет отмечать, что статус истинный или нет. Если высота рассчитывается, то статус равен true и высота будет сохранена.

теперь, когда я приду туда снова. он проверит, имеет ли статус значение true, тогда высоту следует выбирать только из словаря.

как я могу это сделать?

1 Ответ

2 голосов
/ 19 августа 2011

Для этого есть -heightForRowAtIndexPath метод делегата:

- (CGFloat)heightForRowAtIndexPath:(NSIndexPath *)indexPath {

    NSDictionary *dict = // get your dictionary for this indexPath

    if([[dict valueForKey:@"status"] boolValue] == YES) {
        return [[dict valueForKey:@"height"] floatValue];
    } else {
        return 44.0f;
    }
}

Я написал этот код, предполагая, что ваш словарь похож на:

status -> NSNumber: bool [YES/NO]
height -> NSNumber: float

Вы можете сделать этот словарь в -viewDidLoad как:

NSNumber *status = [NSNumber numberWithBool:YES]; // or NO
NSNumber *height = [NSNumber numberWithFloat:60.0f]; // or 100.0f, for example
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:status,@"status",height,@"height"];

Затем вы можете добавить этот словарь в некоторый массив и прочитать его в -heightForRow...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...