3

.xib ファイルで UITableView を使用しようとしています。私は過去に、動的プロトタイプで再利用 ID を宣言するストーリーボードでそれを行いました。私は機能するはずの関数内にこのコードを持っています- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath:

NSString *ReuseId = @"DefaultCell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ReuseId];

if (cell == nil) {
    NSLog(@"cell == nil");
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:ReuseId];
}

ただし、これを実行すると、cell == nil一度印刷するのではなく、すべての行に印刷されます。

どうして??

ありがとう。

4

2 に答える 2

2

テーブル ビューを初めて開いたときは、すべてのセルが実際に使用されているため、再利用するセルはありません。テーブルのスクロールを開始すると、セルが再利用され始め、一部のセルが上部から消え始めます。

アップデート

6 行 (高さ 5.5) を部分的に表示できるテーブル ビューがあるとします。UITableViewController がセルを含むテーブルをロードすると、すべてのセルを同時に表示する必要があるため、6 つのセル インスタンスが作成されます。

スクロールを開始して最初のセルが非表示になると、再利用可能なセル セットに追加されます。それは、8番目のセルを作成するときです(7番目が新しく作成されるため、1番目のセルはまだ半分の高さで表示されるため)最初のセルが再利用されます。

于 2013-07-10T15:11:22.800 に答える