如何将UITableView的背景设置为图像?

时间:2009-10-21 17:48:56

标签: iphone

我正在使用UITableViewController来上传表格。我有一个带有UITableView的Nib文件。现在我想要从界面构建器或从TableViewController到图像设置tableView的背景。

怎么做。

好的,所以我在控制器中创建了一个UIImage。现在当我添加我需要添加的地方时。

当我尝试添加它并将tableView的颜色设置为clearColor时,它只显示了Image而不是表格,尽管我确保将图像发送到所有视图的背面。

伙计请注意,我没有处理UIView并添加tableView作为其子视图但是我正在处理UITableView。

7 个答案:

答案 0 :(得分:5)

将UIImageView放在UITableView后面,然后执行以下操作:

tableView.backgroundColor = [UIColor clearColor];

答案 1 :(得分:4)

以某种方式玩弄我能找到方法。

self.tableView.backgroundColor = [UIColor clearColor];

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

答案 2 :(得分:2)

self.tableView.backgroundColor = [UIColor clearColor];

self.parentViewController.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@“parentViewBackground.png”]];

图像尺寸应为
2x - 640 * 960
1x - 320 * 480

小于上面的尺寸,它将被平铺。

答案 3 :(得分:1)

backgroundColor = [UIColor colorWithPatternImage: image]方法rkbang概述非常有用。这是通过向parentViewController添加新视图来实现相同效果的另一种方法。如果要屏蔽parentViewController可能具有的其他内容,这将非常有用。

在您的UITableViewController子类中,-viewDidLoad插入:

//make a cool background image
self.tableView.backgroundColor = [UIColor clearColor];
UIImage *patternImage = [UIImage imageNamed:@"backgroundImage.png"];
UIImageView * backgroundImageView = [[UIImageView alloc] initWithImage:patternImage];

[self.parentViewController.view addSubview:backgroundImageView];
[self.parentViewController.view sendSubviewToBack:backgroundImageView];
//release the background image and image view (the backgroundImageView is still retained by the parentViewController)
[patternImage release];
[backgroundImageView release];

您可能希望跟踪backgroundImageView,以便删除或替换它。上面的代码示例将它留给parentViewController来管理新视图。如果你正在加载和卸载这个UITableView,你将会在每次加载时泄漏这些UIImageViews,除非parentViewController以某种方式以相同的速率释放它们。

答案 4 :(得分:0)

你可以做的是将tableview的backgroundColor属性设置为[UIColor clearColor],并在TableView下面有一个相同大小和位置的UIImageView来显示你的背景。

答案 5 :(得分:0)

TableView属性包括背景颜色。将其设置为clearColor;并把图像放在后面。 (在IB中我认为你必须删除tableview添加图像,然后再将你的tableview添加回来)

如果你是UITableViewController的子类,你会得到一个免费的tableview,不需要ivar或nib,但是因为你使用的是背景我会坚持使用IB。

答案 6 :(得分:0)

您可以使用table-view的backgroundView。这对我有用。

[self.tableView setBackgroundView: [[UIImageView alloc] initWithImage: [UIImage imageNamed:@"????.png"]]];

其中????。png是你的背景图片。