/ / Проблема з ініціюванням UITableViewCells на основі indexPath.row - iphone, object-c, какао, какао-дотик

Проблема з ініціюванням UITableViewCells на основі indexPath.row - iphone, object-c, какао, какао-дотик

У мене є такий спосіб, який слід заповнитиклітинки мого UITableView з даними з масиву. Я хочу отримати дані з масиву, використовуючи рядок, в який дані завантажуються як індекс.

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {


cellComments=(FullCommentCell *)[tableView dequeueReusableCellWithIdentifier:FullCommentCell_ID];
if(cellComments==nil)
{
[[NSBundle mainBundle]loadNibNamed:@"FullCommentCell" owner:self options:nil];
NSLog([NSString stringWithFormat:@"%i",indexPath.row]);
[cellComments loadFullComments:[latestFMLComments objectAtIndex:indexPath.row]];
}
//cellComments.userInteractionEnabled=NO;
return cellComments;

}

Це не працює, як очікувалося. Тільки таблиця заповнюється першими трьома елементами мого масиву, а потім ці дані повторно використовуються, доки не закінчиться моя таблиця. У таблиці повинна бути використана вся інформація з мого масиву. Будь-яка ідея, чому це не працює, як очікувалося?

Відповіді:

3 для відповіді № 1

Вам потрібно встановлювати правильні дані стільникового зв'язку кожного разуви повертаєте клітинку, будь то нове або повторне використання.Коли ви прокручуєте вниз, клітини у верхній частині таблиці видаляються і використовуються повторно для нижньої частини таблиці.Тому чому ви бачите перші кілька елементів даних повторені .

- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath {

cellComments = (FullCommentCell *)[tableView dequeueReusableCellWithIdentifier:FullCommentCell_ID];
if (cellComments == nil) {
[[NSBundle mainBundle]loadNibNamed:@"FullCommentCell" owner:self options:nil];

// Do any one-time setup here, like adding subviews
}

// Set cell data for both new and reused cells here

[cellComments loadFullComments:[latestFMLComments objectAtIndex:indexPath.row]];
//cellComments.userInteractionEnabled=NO;

return cellComments;
}

0 для відповіді № 2

Коли ви отримаєте cellcomments назад зЗателефонуйте dequeueReusableCellWithIdentifier, вам потрібно ще раз викликати loadFullCommnents - клітини будуть використані повторно, так що у вас буде стільки стільки, скільки буде показано на екрані.