iPhone固定位置UITableView背景

iPhone固定位置UITableView背景,iphone,uitableview,background,Iphone,Uitableview,Background,我正在构建一个不使用Interface Builder的iPhone应用程序。我已在以下庄园中设置分组UITableView的背景: self.view.backgroundColor=[UIColor WithPatternImage:[UIImage ImageName:@“groupedBackground.png”] 我正在尝试修复此背景图像,使其不会随表格单元格滚动。有人知道怎么做吗?您可以在UITableView下面放置一个附加视图并设置其背景,这样,如果UITableView是透明

我正在构建一个不使用Interface Builder的iPhone应用程序。我已在以下庄园中设置分组UITableView的背景:

self.view.backgroundColor=[UIColor WithPatternImage:[UIImage ImageName:@“groupedBackground.png”]


我正在尝试修复此背景图像,使其不会随表格单元格滚动。有人知道怎么做吗?

您可以在UITableView下面放置一个附加视图并设置其背景,这样,如果UITableView是透明的-您可以实现您的目标-它将具有正确的背景并且不会滚动。

我们发现它完全按照您的要求工作,如果您不使用backgroundColor,而是将其指定给backgroundView,像这样:

self.tableView.backgroundView = [[UIImageView alloc] initWithImage:
                 [UIImage imageNamed:@"background.png"]];

然后,表格单元格在静止的背景顶部滚动。(我相信这是从SDK的3.2版开始提供的。)

您可以使用如下模式图像实现固定背景:

UIView *patternView = [[UIView alloc] initWithFrame:tableView.frame];
patternView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"groupedBackground.png"]];
patternView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
tableView.backgroundView = patternView;

有点晚了,但可能其他人都在寻找解决方案。我可以通过调用
UITableViewController
viewDidLoad
方法中的
parentViewController
来完成这项工作:

self.parentViewController.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"background.png"]];
self.tableView.backgroundColor = [UIColor clearColor];
或者只使用背景色:

self.parentViewController.view.backgroundColor = [UIColor scrollViewTexturedBackgroundColor];
self.tableView.backgroundColor = [UIColor clearColor];

我花了一段时间才弄明白这一点,但现在它很有魅力。

在swift 3.0中使用下面的代码来实现tableview的恒定背景

 self.tableView.backgroundView = UIImageView(image: UIImage(named: "background.png")!)

你对Interface Builder有什么问题?我在这方面花了一段时间,但发现我想做的只是用代码编写它更容易。我不反对将来使用它。这意味着alpha混合了UITableView。您是否注意到使用此方法会导致性能下降?我在一个非常简单的案例中使用了它,因此没有看到任何性能下降。所以知道它的唯一方法就是尝试它,它不应该花费太多时间。嗯。。。听起来不错,但我还是有一些问题。我在UITableViewController的ViewDidLoad中放置了以下代码:self.view.backgroundColor=[UIColor clearColor];UIImageView*background=[[UIImageView alloc]initWithImage:[UIImageName:@“groupedBackground.png”];[self.view addSubview:background];[self.view sendSubviewToBack:background];由于“background”仍在tableView中,因此它会与其余部分一起滚动,并且单元格不会显示在背景图像的顶部。您可以创建一个简单的UIViewController,并将background+table放置到主视图中。为了清楚起见,这不适用于
UITableViewController
,因为在
UITableViewController
self.view==self.tableView
中。如果您将
UITableView
添加到
UIViewController
中,它就可以正常工作,但必须在iOS 5.1中确认。这个答案应该得到IMHO的认可,这是一个比经常宣传的在表视图后面添加子视图的方法(只有在不使用UITableViewController的情况下才能正常工作)更广泛适用的解决方案。