在UITableViewController代码中添加UITable后面的UIView

Dre*_*w C 15 iphone cocoa-touch background uitableview

我想在我的iPhone程序的简单分组表视图中使用固定图像作为背景.不幸的是,无论我做什么,背景总是纯白色.我已经在这个网站上跟随了几个假设的解决方案而其他方面都无济于事.这是表视图控制器类的viewDidLoad方法中的相关代码(注意,为简单起见,此代码使用纯蓝色而不是图像):

self.tableView.opaque = NO;
self.tableView.backgroundColor = [UIColor clearColor];
UIView *backgroundView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
backgroundView.backgroundColor = [UIColor blueColor];
[self.tableView.window addSubview:backgroundView];
[backgroundView release];
Run Code Online (Sandbox Code Playgroud)

我怀疑我没有将backgroundView视图放在正确的位置.我尝试过sendToBack :,来自ToFront:和其他人,但我总是得到一个白色背景.是否可以在UITableViewController中执行此操作?我必须使用Interface Builder吗?

Ada*_*Woś 19

使用UITableView的subviews属性在那里添加你的背景:

[self.tableView addSubview:backgroundView];
[self.tableView sendSubviewToBack:backgroundView];
Run Code Online (Sandbox Code Playgroud)

此外,您的单元格/标题等可能需要设置为透明,以使您的backgroundView可见.


EFC*_*EFC 14

从iOS 3.2开始,它UITableView有一个叫做的属性backgroundView.因此,不要添加任何子视图,只需执行以下操作:

self.tableView.backgroundView = backgroundView;
Run Code Online (Sandbox Code Playgroud)

表视图将负责将背景视图的大小调整为表的大小.背景视图不会随表格单元格移动.换句话说,如果背景视图是图像视图,则图像将保持锁定在屏幕上,细胞在其上滑动.如果存在背景视图,默认表视图似乎也具有使单元的适当元素自动清除的智能.