29

静的な UITableView があり、すべてがストーリーボードに配置されています。cellForRowAtIndexPath では、単に使用します

return [super tableView:tableView cellForRowAtIndexPath:indexPath];

テーブルビューはうまく機能します。ただし、セルの背景を[UIColor clearColor]に設定したいのですが、どうすればよいですか? テーブルには 30 個のセルがあり、それぞれが異なります。

ありがとう

4

3 に答える 3

64

superセルの管理に使用したことがないため、これが機能するかどうかは完全にはわかりません。コードが で動作する場合superは、これを実行して背景色を設定する必要はありません。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell = [super tableView:tableView cellForRowAtIndexPath:indexPath];
    cell.backgroundColor = [UIColor clearColor];
    return cell;
}

いずれにせよ、これは奇妙なやり方のように思えます。通常、セルはメソッド自体で作成され、デフォルトのUITableViewボイレットプレート コードに従って、 を呼び出さずに再利用されますsuper

于 2012-08-16T19:12:25.603 に答える
22

このデリゲート メソッドを試してください。

- (void) tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
 cell.backgroundColor = [UIColor clearColor];
}
于 2012-08-16T19:13:10.533 に答える
1

すべてのセルを取得し、これを使用して必要なことを行うために、メソッドを設定して viewDidLoad で呼び出すことができます。

NSArray *visibleIndexPaths = [self.tableView indexPathsForVisibleRows];

現在表示可能なセルのすべてのインデックス パスを取得するには

次に、次の方法でそれらを繰り返します

UITableViewCell *cell = nil;
for (int i = 0; i < 30; i++) {
  cell = [self.tableView cellForRowAtIndexPath:[visibleIndexPaths objectAtIndex:i]];
  // Do your setup
}

この Apple 開発者ドキュメントの「静的行コンテンツのテクニック」の部分を参照することもできます。

于 2012-08-16T19:11:10.723 に答える