以编程方式从UITableViewController将UIImage设置为UITableView的背景

时间:2013-03-25 19:35:59

标签: ios uiimage uitableview

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

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

enter image description here

做:

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

它看起来像这样:

enter image description here

我怎么能这样做?

2 个答案:

答案 0 :(得分:2)

您可以按照以下方式执行此操作:

viewDidLoad中的tableView中设置背景图像:

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];
}

答案 1 :(得分:-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];