У меня есть ячейка tableview, и внутри нее у меня есть кнопка. Внутри этой кнопки отображается отображаемый текст, который является динамическим. Это работает, однако, когда я просматриваю вверх и вниз, текст исчезает и появляется через четверть секунды позже, и это довольно заметно, особенно при быстрой прокрутке.NSAttributedString не плавно прокручивается (исчезает/появляется) в таблицеViewCell
При отладке, я заметил, если я закомментировать линии attString = [[NSMutableAttributed...
до последнего [attString appendAttributedString:[[...
метода (ниже мой комментарий), и установить название profileIDButton
в @"test"
, не было никакой проблемы при прокрутке. Я считаю, что выделение/инициализация attString
вызывает проблемы с прокруткой. Как я могу избавиться от этого исчезновения и появиться четверть второго более позднего поведения? Есть ли способ создать присланную строку и добавить к ней без выделения/инициализации памяти в cellForRowAtIndexPath
?
//Within the cellForRowAtIndexPath method:
// HERE IS WHERE I BELIEVE IS THE CAUSE OF TEXT DISAPPEARING DUE TO MEMORY ALLOCATION.
attString = [[NSMutableAttributedString alloc] init];
[attString appendAttributedString:[[NSAttributedString alloc] initWithString:@"@" attributes:dict1]];
[attString appendAttributedString:[[NSAttributedString alloc] initWithString:senderName attributes:dict1]];
[attString appendAttributedString:[[NSAttributedString alloc] initWithString:@" posted " attributes:dict2]];
[attString appendAttributedString:[[NSAttributedString alloc] initWithString:recepientName attributes:dict2]];
[attString appendAttributedString:[[NSAttributedString alloc] initWithString:@"." attributes:dict2]];
[cell.profileIDButton setAttributedTitle:attString forState:UIControlStateNormal];
Лучшие клетки, отображающие это освежающее поведение при прокрутке
Вы должны использовать [профайлер времени] (http://www.raywenderlich.com/23037/how-to-use-instruments-in-xcode), чтобы выяснить, где происходит замедление, если таковое имеется, на самом деле , Из вашего описания проблемы я подозреваю, что вы можете перегружать ячейки больше, чем вы думаете. Поведение, которое вы описываете, не похоже на то, что оно связано с памятью, и если ваши строки занимают много времени, вы будете видеть прокрутку затмения, а не текст, появляющийся и исчезающий. Можете ли вы опубликовать видеоролик о возникающей проблеме? –
С вашего скриншота похоже, что метки оживляют их непрозрачность, или, может быть, ячейка меняет выбранное или выделенное состояние. Это возможно? –
Возможно, вы можете попробовать переместить словарь атрибутов вне cellForRow coz, он будет продолжать создавать новый при загрузке каждой ячейки, в cellForRow будет задан только текст строки – Tj3n