Custom UitableViewCell تغيير الفهرس أثناء التمرير؟
-
30-09-2019 - |
سؤال
لديّ uitableViewCell مخصص قمت بإنشائه في Builder Interface. إنني أزيل الخلايا بنجاح ، لكن أثناء التمرير ، يبدو أن الخلايا تبدأ في استدعاء فهرس مختلفة. في هذا المثال ، أقوم بتغذية INDEXPATH.Section و INDEXPATH.ROW في CustomCelllabel. بينما أقوم بالتمرير على الجدول لأعلى ولأسفل ، ستتغير بعض الخلايا. يمكن أن تكون الأرقام في كل مكان ، لكن الخلايا لا تتخطى بصريًا.
إذا قمت بتعليق IF (cell == nil) ، فإن المشكلة تختفي.
إذا استخدمت خلية قياسية ، فإن المشكلة تختفي.
الأفكار لماذا قد يحدث هذا؟
// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = (UITableViewCell *)[tableView dequeueReusableCellWithIdentifier:@"CalendarEventCell"];
if (cell == nil) {
NSLog(@"Creating New Cell !!!!!");
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"CalendarEventCell" owner:self options:nil];
cell = (UITableViewCell *)[nib objectAtIndex:0];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
}
// Set up the cell...
[customCellLabel setText:[NSString stringWithFormat:@"%d - %d",indexPath.section, indexPath.row]];
return cell;
}
المحلول
عندما تقوم بإنشاء خلية في حالة (Cell == NIL) ، هل تقوم بتعيين إعادة استخدام إلى الخلية كـ "CalendareventCell"؟ أستطيع أن أرى اسم NIB الخاص بك هو CalendAreventCell ، لكنني أعتقد أنك ستحتاج أيضًا إلى ضبط
cell.reuseIdentifier = @"CalendarEventCell";
إذا لم يكن الأمر كذلك ، فأنا لست متأكدًا مما إذا كان بإمكانه إلغاء الخلايا الصحيحة. أيضًا ، لست متأكدًا مما يشير إليه CustomCelllabel.