0

グループ化されたテーブルを使用して、画像サブビューを UITableViewController に追加しています。画像サブビューを追加すると、画像の上にテーブル ヘッダーが表示されますが、セルは画像の背後に描画されています。

表のセルが背景画像の上に表示されるようにするために他に何かする必要がありますか? UITableViewControlle の viewDidLoad で使用しているコードは次のとおりです。

CGRect myImageRect = CGRectMake(0.0f, 0.0f, 320.0f, 959.0f); 
UIImageView *backImageView = [[UIImageView alloc] initWithFrame:myImageRect]; 
[backImageView setImage:[UIImage imageNamed:@"somebackground.png"]]; 
[self.view addSubview:backImageView];
[self.view sendSubviewToBack:backImageView];
[backImageView release];

別の方法として、ここでやろうとしていることではなく、単純に複合ビューを作成してその上にテーブルビューをドロップできることに気付きました。他に解決策がない場合はそうしますが、可能であれば、私が試しているアプローチを使用することをお勧めします。

4

2 に答える 2

2

グループ化されたテーブル ビューです。アップルのドキュメントから:

The grouped style of table view provides a default background color and a default background view for all cells.

これは、テーブルの後ろにデフォルトの画像ビューが挿入されていることを意味します。次のように、それを独自のビューに置き換えます。

CGRect myImageRect = CGRectMake(0.0f, 0.0f, 320.0f, 959.0f); 
UIImageView *backImageView = [[UIImageView alloc] initWithFrame:myImageRect]; 
[backImageView setImage:[UIImage imageNamed:@"somebackground.png"]]; 
self.tableView.backgroundView = backImageView;

これにより、他の backgroundView が独自のものに置き換えられます。そうしないと、テーブル ビューが再びレイアウトされたときに、他の背景画像があなたの背景画像に重なって表示されます。

于 2010-11-25T18:19:23.443 に答える
0

UITableViewは、更新時にビューのzorderを再配置することが多いようです。したがって、行の挿入/削除/更新などのテーブルイベントでのzorderのリセットを手動で管理する必要があります。

于 2010-04-30T16:21:25.227 に答える