1

カスタムセルがあり、その中に別のテーブルビューがあるテーブルビューがあります。このcellForRowAtIndexPathメソッドでは、このエラーno index path for table cell being reusedcell gets disappeared after scroll. これは indexpath の問題ですか、それとも cellidentifier の問題ですか?

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"CustomCell";
CustomCell *customCell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];     
//    __block CustomCell *customCell = (CustomCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
//    if (customCell == nil)
//    {
//        customCell = [[[CustomCell alloc] initWithFrame:CGRectMake(0, 0, 320, 416)] autorelease];
//   
// }
[customCell prepareCell:arrCategory];
return customCell;
}
-(void)prepareCell:(NSArray *)arrCategory
{
      if(mutArr != nil) {
        [mutArr removeAllObjects];
        mutArr = nil;
        [mutArr release];
 }
 mutArr = [[NSMutableArray alloc] arrCategory];
 [tblCusom reloadData];
}

私はこのSO quesを通過しますが、この質問で使用されている方法は使用していません。それで、私がそれを追跡できない問題は何でしょうか。グーグルで検索しても同じ問題は見つかりませんでした

4

3 に答える 3

0
    CustomCell *categoryCell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

セルインスタンスを作成していますが、どこでも使用しておらず、そのセルは reuseIdentifier メソッドから返されています。実際、コードでこの行を使用していません

于 2013-06-17T06:02:20.687 に答える
0

私も長い間このバグに直面しており、解決策を見つけました:-

[tblCusom reloadData];

に置き換えます

[self performSelector:@selector(tableReloadMethod) withObject:nil afterDelay:0.5];

このメソッドを追加します:-

-(void)tableReloadMethod
{
    [tblCusom reloadData];

}

お役に立てば幸いです。

于 2013-06-17T05:53:25.690 に答える
0

私の理解が正しければ、デリゲートのメソッドを呼び出すtableView(mainTableViewまたはtblCustom)を確認する必要があります。このようなもの:

   - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        if (tableView == tblCusom)
        {
           __block CustomCell *categoryCell = (CustomCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
            if (customCell == nil)
            {
                customCell = [[[CustomCell alloc] initWithFrame:CGRectMake(0, 0, 320, 416)] autorelease];

            }

            [customCell prepareCell:arrCategory];
        }
        else if (tableView == self.myMainTableView)
        {
            static NSString *CellIdentifier = @"CustomCell";
            CustomCell *categoryCell = [tableView   dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
            return categoryCell;
        }

    return customCell;
}

お役に立てば幸いです。

于 2013-06-17T05:11:51.087 に答える