iPhone:分组TableView背景图像问题

时间:2010-08-02 02:54:59

标签: iphone background uitableview

嘿大家,这看起来应该是一个简单的;我真的希望如此。一如既往,提前谢谢!

我要做的就是将背景图像添加到分组样式表视图中。我在viewDidLoad中使用以下方法:

self.tableView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"background.png"]];

不幸的是,background.png似乎不仅在细胞后面绘制,而且在细胞和标题的背景上绘制如下:

alt text http://www.freeimagehosting.net/uploads/194449ffc1.png

我知道这个网站上有一些问题可以解决类似的问题,但我担心我无法解决任何问题。 How can I set the background of UITableView (the tableview style is "Grouped") to use an image?让我添加了

self.tableView.opaque = NO;
self.tableView.backgroundView = nil;

to 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

它看起来好像没有被发送到后面并且标题以某种方式显示出来或者单元格与它一起向后移动。我不太确定。这里的任何建议也将受到赞赏。

这是我找到编辑代码的地方: Add UIView behind UITableView in UITableViewController code

5 个答案:

答案 0 :(得分:4)

我经历了与你在这里描述的类似的道路。我终于找到了一个对我有用的答案:

How to set the background of a UITableView to an image?

这是由用户rkb发布的两行代码。这是代码:

self.tableView.backgroundColor = [UIColor clearColor];

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

答案 1 :(得分:3)

另一种解决方案,如果没有别的东西在这里。在ViewDidLoad中:

UIImage *background = [UIImage imageNamed:@"MyBackground.png"];
self.tableView.backgroundView = [[UIImageView alloc] initWithImage:background];

这会将静态(不拉伸或移动)背景放在所有分组的tableview元素后面,例如标题和单元格。

答案 2 :(得分:2)

使用之前的回复(特别是来自dana_a),这就是我如何工作

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

这是在我的viewWillAppear:方法中,对于我的情况,一个带有分组tableview的详细视图控制器。

答案 3 :(得分:1)

我将此代码放在我的ViewDidLoad方法中,它工作得很漂亮。

self.termsTableView.backgroundColor = [UIColor clearColor];

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

答案 4 :(得分:0)

我仍然没有弄清楚为什么以上不起作用或如何修改它,但是通过将subView添加到App Delegate中的窗口而不是tableView,我能够得到它工作。

不仅仅是让它发挥作用并继续前进,我还想真正学习,所以我仍然很好奇我上面的错误。因此,我会在一段时间内将此作为未答复,如果您能告诉我我的错误,我会给您举行投票和绿色复选标记。谢谢!