我正在构建一个不使用Interface Builder的iPhone应用程序。我在以下庄园中设置了分组UITableView的背景:
self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"groupedBackground.png"]];
我正在尝试修复此背景图像,以便它不会与表格单元格一起滚动。有谁知道怎么做?
答案 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() );
}
}