iPhone固定位置UITableView背景

时间:2009-12-25 06:14:22

标签: iphone uitableview background

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

self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"groupedBackground.png"]];

我正在尝试修复此背景图像,以便它不会与表格单元格一起滚动。有谁知道怎么做?

5 个答案:

答案 0 :(得分:45)

我们发现它完全按照您的要求工作,如果不使用backgroundColor,则分配给backgroundView,如下所示:

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

表格单元格然后在背景上滚动,这是静止的。 (我相信自SDK版本3.2以来一直可用。)

答案 1 :(得分:8)

您可以使用图案图像获得静止背景,如下所示:

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

答案 2 :(得分:5)

有点晚了但也许其他所有人都在寻找解决方案。我可以通过调用parentViewController的{​​{1}}方法中的viewDidLoad来完成这项工作:

UITableViewController

或仅使用背景颜色:

self.parentViewController.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"background.png"]];
self.tableView.backgroundColor = [UIColor clearColor];

我花了一段时间来弄明白这一点,但现在它就像一个魅力。

答案 3 :(得分:1)

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

答案 4 :(得分:0)

在swift 3.0中使用以下代码来实现tableview的常量背景

//I'm assuming "elem" is a List<ElementClass> here
public void expandElements( List<ElementClass> elem ) {
  for ( ElementClass element : elem ) {
    expandIfNeeded( element );
    expandElements( element.getChildren() );
  }
}