iPhone:分组的TableView背景图片问题

3
大家好,这似乎是一个简单的问题,希望确实如此。提前感谢大家!
我只想在分组样式表格视图中添加背景图片。在viewDidLoad中,我使用以下方法:
self.tableView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"background.png"]];

很不幸,background.png 似乎不仅绘制在单元格的后面,还绘制在单元格和标题的背景上,如下所示: alt text http://www.freeimagehosting.net/uploads/194449ffc1.png 我知道这个网站上有一些类似问题的解决方案,但恐怕我没能使任何事情起作用。 如何设置 UITableView(tableview 样式为 "Grouped")的背景使用图片? 让我添加了以下内容:
self.tableView.opaque = NO;
self.tableView.backgroundView = nil;

执行viewDidLoad并添加

cell.backgroundView = nil;
cell.opaque = NO;

在配置我的单元格时,不用说,它没起作用。添加


cell.backgroundColor = [UIColor clearColor];

也没有用。可悲的是,这是我的最后一个想法了。如果可能的话,我真的很想能够在界面构建器中不添加背景来完成这个任务。我更喜欢尽可能多地以编程方式完成任务。希望这样要求不会太贪心。再次感谢!

* * * 编辑: * * *

我找到了另一种方法来实现这个目标,但遇到了另一个问题。我在viewDidLoad中添加了以下代码:

    UIView *bgView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
    bgView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"background.png"]];
    [self.tableView.window addSubview:bgView];

    [self.tableView addSubview:bgView];
    [self.tableView sendSubviewToBack:bgView];

看起来很有前途,也很有可能是的,但不幸的是它给了我以下的东西: alt text http://www.freeimagehosting.net/uploads/c02dd68e20.png 看起来似乎要么没有发送到后面,标题以某种方式显示出来了;或者单元格与其一起向后移动。我完全不确定。在这里任何建议都将不胜感激。
以下是我找到的编辑代码位置: 在UITableViewController代码中添加UIView背景UITableView
5个回答

4
我经历了类似的过程。最后,在以下问题中找到了适合我使用的答案:如何将UITableView的背景设置为图像?该用户rkb发布了两行代码,代码如下:
self.tableView.backgroundColor = [UIColor clearColor];

self.parentViewController.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageWithData:imageData]];

3
如果其他方法都无法解决问题,还有另一个解决方案。在ViewDidLoad中实现:
UIImage *background = [UIImage imageNamed:@"MyBackground.png"];
self.tableView.backgroundView = [[UIImageView alloc] initWithImage:background];

这将使你的静态(不拉伸或移动)背景放置在所有分组的表视图元素之后,例如标题和单元格。

2

根据之前的回复(尤其是dana_a的回复),这是我如何让相同的内容工作的方法:

self.tableView.backgroundColor = [UIColor clearColor]; self.parentViewController.view.backgroundcolor = [UIColor colorWithPatternImage:[UIImge imageNamed:@"bgtest2.png"]];

这是在我的viewWillAppear:方法中,用于我的情况下的详细视图控制器和分组表格视图。


1
我将这段代码放在我的ViewDidLoad方法中,它运行得非常好。
self.termsTableView.backgroundColor = [UIColor clearColor];

self.parentViewController.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"metal4.png"]];

0

我仍然没有弄清楚为什么上面的代码不起作用,也不知道如何修改它使其正常工作。但是,通过将subView添加到App Delegate中的窗口而不是tableView中,我成功地让它正常工作了。

与其只是让它正常工作并继续前进,我更想实际学习,所以我仍然对自己哪里出错感到好奇。因此,我会将其保留未答复一段时间,如果您能告诉我我的错误,我会给您点赞和绿色勾号。谢谢!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接