2

5行のUItableviewである履歴ページがあります。プロトタイプセルを必要な仕様に設定し、このテキストを対応するhistoryviewcontroller.hファイルに追加しました。

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
   return 5;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath           *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"HistoryItem"];
return cell;
} 

アプリを実行してもセルが表示されません。私は明らかに何かを逃しました、しかし私は何を完全に見ることができません。

4

1 に答える 1

5

実際にセルを作成する必要があります。dequeueReusableCellWithIdentifierは、すでに作成されたセルのみを取得し、新しいセルは作成しません。

方法は次のとおりです。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath           *)indexPath
    static NSString *CellIdentifier = @"HistoryItem"; 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    //if cell is not nil, it means it was already created and correctly dequeued.
    if (cell == nil) {
        //create, via alloc init, your cell here
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    }
    return cell;
}
于 2012-05-27T14:07:22.420 に答える