У мене є такий спосіб, який слід заповнитиклітинки мого 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 - клітини будуть використані повторно, так що у вас буде стільки стільки, скільки буде показано на екрані.