0

numberOfRowsInSection で 100 を返す場合

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

次に、メソッドで一度に作成されるセルの数はcellForRowAtIndexPath?

4

6 に答える 6

1

実際には、100個のセルすべてを割り当てることはありません。代わりに、現時点で表示されるもののみ。を使用して[tableView dequeueReusableCellWithIdentifier:cellIdentifier];いるため、セルはメモリ処理に再利用されます。

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

セルの総数を返すだけです。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

このメソッドは、テーブルビューをスクロールするたびに呼び出されます。

于 2013-02-26T13:15:34.190 に答える
1

-tableView:cellForRowAtIndexPath:メソッドが呼び出される回数を尋ねている場合、答えは、現時点で多くのセルが表示されているときに呼び出されるということです。スクロールすると、表示されようとしている新しいセルごとに呼び出されます。現在表示されているセルの数をどのように知るのでしょうか? 各-tableView:heightForRowAtIndexPath:セルに対して が呼び出され、テーブル ビューの contentSize が計算されます。

于 2013-02-26T13:07:17.967 に答える
0

細胞の種類によって異なります。dequeueReusableCellWithIdentifier を設定すると、画面に表示されているものだけが初期化され、スクロールすると、上記のメソッドで設定した行数までスクロールダウンします。

于 2013-02-26T13:06:55.897 に答える
0

100個すべてを割り当てますCellsが、一度に表示されるのは、次のCellsように修正されるものだけです

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

の高さCellと幅UITableView Frame

于 2013-02-26T13:09:07.337 に答える
0

@pbibergal に同意します。dequeueReusableCellWithIdentifier を使用し、以下のような条件を設定すると、一度に約 9 つのセルが作成されます (セルの数はテーブルビューの高さに依存します)。それ以外の場合は、システムによって一度に 100 個のセルが作成されます。

TableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell==nil) {
        cell = [[MainCustomCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }

上記のコードを使用した場合、一度に作成される制限されたセル (9 つのセル) で、そうでない場合は一度に 100 のセルが作成され、メモリ内で影響を受けました。

于 2013-02-26T13:49:08.017 に答える
0

UITableViewセルの数は、高さのベースを返します。最初にセル表示の数を返すことを意味します。tableView:cellForRowAtIndexPathの非表示セルの呼び出しではなく、表示セルのみのメソッド呼び出しUITableView。スクロールtableView:cellForRowAtIndexPathすると、新しいセルを作成するのではなく、以前の非表示のセルを再利用します。

于 2013-02-26T13:14:35.433 に答える