0

我有一个 MyTableViewController ,它是UITableViewController. 我没有.xib。我想UIImage从 MyTableViewController 中设置一个作为 tableView 的背景。我试图添加我的ViewDidLoadself.tableView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"background_img"]];

但是id没有用。覆盖的 img 看起来像这样:

在此处输入图像描述

通过做:

UIImageView *bgImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"background_img"]];
bgImageView.frame = self.view.bounds;
[self.view addSubview:bgImageView];
[self.view sendSubviewToBack:bgImageView];

它看起来像这样:

在此处输入图像描述

我怎样才能让它工作?

4

2 回答 2

2

你可以这样做:

在 tableView 中设置背景图片viewDidLoad

UIImageView *bgImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:<image>]];
bgImageView.frame = <tableView>.frame;
[<tableView> setBackgroundView:bgImageView];

然后将单元格的颜色设置为清除tableView:willDisplayCell:forRowAtIndexPath:

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
    cell.backgroundColor = [UIColor clearColor];
}
于 2013-03-25T20:04:30.573 回答
-1

您需要使表格视图背景透明:

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

然后设置视图的背景:

self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"background_img"]];

设置背景图像的更好方法是:

UIImageView *bgImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"background_img"]];
bgImageView.frame = self.view.bounds;
[self.view addSubview:bgImageView];
[self.view sendSubviewToBack:bgImageView];
于 2013-03-25T19:40:10.103 回答