将背景图片设置为uitableview?

5
我想将一张图片设置为我的uitableview的背景。这是我正在使用的代码:
 self.tableView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"background_tableview.png"]];

这个问题描述了图片在一开始显示正常,但是当表格被填充后就会出现奇怪的情况。每个tableviewcell中都会显示部分图片,并且图片也会随着表格滚动。如何使图片保持固定,而每个tableviewcell不显示图片的任何部分呢?

谢谢,
TC


可能是UITableView带有背景图片的单元格的重复问题。 - bummi
4个回答

13

如果不想让UITableView滚动,请不要设置其背景。相反地,您需要将UITableView的背景设置为透明,并在UITableView后面提供自己的固定背景。

首先,将UITableView的背景设置为“Clear Color”。

以编程方式:self.tableView.backgroundColor = [UIColor clearColor];

您还需要取消不透明的复选框。

以编程方式:self.tableView.opaque = NO;

UITableView后面的视图中设置所需的固定背景。

确保您的任何UITableViewCell中的子视图也是backgroundColor = [UIColor clearColor];(例如UITextView等)。

Example Xcode 4 / Interface Builder setup


3
有没有以编程方式解决这个问题的方法? - Tushar Chutani
1
编辑了带有示例代码的内容,以便通过编程实现(虽然不确定是否正确... 嘿嘿)。您可以通过代码完成界面构建器中的任何操作 - 而且相当简单。只需搜索苹果文档中的类名和属性名称即可找到所需信息。 - Steve
我需要将UIImageView添加为子视图吗? - Tushar Chutani
只需将UIVIew的背景颜色设置为当前所做的方式,而不是UITableView。 - Steve
好的解释 :) 为答案加1分 - Navnath Memane

7
背景图片
self.tableView.backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"your_image"]];

不要忘记在图片文件名中加上图片类型。例如:

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

0

/* 在uitableview中设置背景图像如下 */

UIImageView *imguser = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"user"]];
[tblUser setBackgroundView:imguser];

0

如果在UIViewController中添加tableViewImageView,则上述解决方案有效。

在代码中,创建tableView的输出口并将其连接到xib中的tableView,将视图连接到UIView中。将图像放入UIImageView并单击imageView。选择:

Editor > Arrange > Send to Back

UIViewControllerviewDidLoad方法中,添加以下行:

self.tableView.backgroundColor = [UIColor clearColor];
self.tableView.opaque = NO;

对我来说它起作用了:)


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