Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iPhone-UITableView背景_Iphone_Objective C_Uitableview_Background Image - Fatal编程技术网

iPhone-UITableView背景

iPhone-UITableView背景,iphone,objective-c,uitableview,background-image,Iphone,Objective C,Uitableview,Background Image,我想为我的UITableView提供背景图像,因此我尝试了以下方法: - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view from its nib. UIImageView *v = [[UIImageView alloc] initWithFrame:self.view.bounds]; [v setImage:[UIImage imageNamed:@"Bac

我想为我的UITableView提供背景图像,因此我尝试了以下方法:

- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
UIImageView *v = [[UIImageView alloc] initWithFrame:self.view.bounds];
[v setImage:[UIImage imageNamed:@"Background.png"]];
[self.view addSubview:v];
[self.view sendSubviewToBack: v];
...
}
这个很好用。但是,在pushViewController之后,此方法不再有效(为什么?)。所以我改变了一个方法:

- (void)viewDidLoad
{
[super loadView];
// Do any additional setup after loading the view from its nib.
self.tableView.backgroundView = nil;
self.tableView.backgroundColor = [[UIColor alloc]initWithPatternImage:[UIImage imageNamed:@"Background.png"]];
...
}
这是可行的,但结果不是我所期望的。不知何故,背景图片改变了它的大小(就像部分放大),并且单元格的背景比前一张更暗

有人知道原因吗?这个问题我已经解决很久了

非常感谢

使用以下命令:

UIColor *background = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"TableBackground.jpg"]];
self.tableView.backgroundColor = background;
[background release];
编辑:

UIImage *myImage = [[UIImage alloc] initWithFrame:CGRectMake(0, 0, 320, 460)];
myImage.image = [UIImage imageNamed:@"TableBackground.jpg"];
UIColor *background = [[UIColor alloc] initWithPatternImage:myImage];
self.tableView.backgroundColor = background;
[background release];

试试这段代码,我相信它会成功的

UIImage * targetImage = [UIImage imageNamed:@"coloured_flower.jpg"];
UIGraphicsBeginImageContextWithOptions(tableView.frame.size, NO, 0.f);
[targetImage drawInRect:CGRectMake(0.f, 0.f, tableView.frame.size.width, tableView.frame.size.height)];
UIImage * resultImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
tableView.backgroundColor = [UIColor colorWithPatternImage:resultImage];

显示我的答案。您在tableview中添加了图像视图。不在视图中尝试在视图中执行您的代码将显示:这对您有用。谢谢您的回复!但这仍然行不通。我复制了您所说的内容,编译器显示“不兼容的指针类型将UIImageView*发送到UIImage*类型的参数”,感谢您的帮助!但这很奇怪。。。完全阻塞了表格,tblView的框架大小不正确此imageView u可以将其调整为tableView框架。那么您面临的问题类型我不完全理解。请详细说明这行“完全阻塞了表格”或显示一些屏幕快照是的,我知道大小。对不起,我不能上传截图。。。只是背景图片出现在桌面视图的前面不必担心,我有问题了。我使用了不同的桌面视图。是我的错。谢谢!谢谢!是的,这很有用:)
UITableView *tblView=[[UITableView alloc] init];
[tblView setFrame:CGRectMake(0, 0, 320, 300)];


UIImageView *imgView=[[UIImageView alloc] initWithFrame:tblView.frame];
[imgView setImage:[UIImage imageNamed:@"cinemax.jpg"]];
tblView.backgroundView=imgView;

[self.view addSubview:tblView];