我添加的图像子视图到的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];

我认识到,作为替代,我可以简单地创建一个复合视图拖放在它上面的实现代码如下而不是什么我想在这里做。如果没有任何其他的解决方案,我将这样做,但宁愿用我想,如果在所有可能的办法。

有帮助吗?

解决方案 2

看来,UITableView的往往会重新排列的视图时的清爽ZORDER。所以,你需要手动管理任何表事件,如插入/删除/更新行复位ZORDER。

其他提示

这是一个分组的表图。从苹果文档:

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用你自己的。否则,当表视图再次摆出来,其他的背景图片将覆盖你的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top