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];

我意识到,作为替代方案,我可以简单地创建一个复合视图并将 tableview 放在它上面,而不是我在这里尝试做的事情。如果没有任何其他解决方案,我会这样做,但如果可能的话,我更愿意使用我正在尝试的方法。

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 回答