سؤال

لديّ 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.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top