UIView和UITableView在背景图像中不一致

时间:2013-04-03 11:58:13

标签: objective-c xcode uitableview uiview background-image

我有一个标签栏控制器,包含两个标签:UIView和UITableView控制器。

我正在尝试在其中使用相同的背景图像,但问题是图像在UITableView中调整大小。

Here你可以看到差异。

为了添加背景图像,我在UIView中使用了这段代码:

UIGraphicsBeginImageContext(self.view.frame.size);
[[UIImage imageNamed:@"background.jpg"] drawInRect:self.view.bounds];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
self.view.backgroundColor = [UIColor colorWithPatternImage:image];

这对于UITableView:

UIImageView *tempImageView = [[UIImageView alloc] initWithImage:
[UIImage imageNamed:@"background.jpg"]];
[tempImageView setFrame:self.tableView.frame];
self.tableView.backgroundView = tempImageView;

检查我使用的视图框尺寸

NSLog(@"%@", NSStringFromCGSize(self.view.frame.size));

并将此用于表格视图

NSLog(@"%@", NSStringFromCGRect(self.tableView.frame));

结果相同({320,460})

我甚至尝试在XCode IB中添加UIView背景图像,但没有运气。

图片是jpg,大小为640 X 1136.我也尝试了一个png文件但没有运气。

任何建议都表示赞赏。

2 个答案:

答案 0 :(得分:1)

我使用Pranav的答案是在我使用的UITableView中做的:

UIView* backgroundView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.tableView.bounds.size.width, self.tableView.bounds.size.height)];
[backgroundView setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"background.jpg"]]]; 
[self.tableView setBackgroundView:backgroundView];

在我刚刚使用的UIView中:

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

答案 1 :(得分:0)

您可以对这两种情况使用colorWithPatternImage:

self.tableView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:YOUR IMAGE"]];