2015-12-21 148 views
0

我正在使用一个快速的应用程序,它使用表视图来显示新闻。对于背景,我使用viewDidLoad方法中的以下代码行设置图像。使背景图像固定

self.view.backgroundColor = UIColor(patternImage: UIImage(named: "backgroundImage.jpg")!) 

但是,这使得背景在向下滚动时重复自身,这使得它看起来非常丑陋(请参阅附加图像)。

Background image keeps repeating when scrolling

所以我的愿望是有一个固定的(不重复)背景图片看起来总是相同的,而滚动,完全不动。

我该如何做到这一点?

谢谢你的帮助!

+0

您可以添加一个'UIImageView',它的大小与它包含的'UIView'相同。 – Caleb

+0

我已经试过了,但是它覆盖了其他元素,并且它只有屏幕尺寸,因此消失了完全在滚动时。或者我必须给它一些额外的属性? –

回答

1

所以我做了一些更多的挖掘,终于跨越此帖一:https://stackoverflow.com/a/27684597/2204207

在那里,它建议使用

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

,而不是

self.view.backgroundColor = UIColor(patternImage: UIImage(named: "backgroundImage.png")!) 

因此,如果你想有一个固定的和非重复的背景图片使用.tableView.backgroundView。即使向下滚动,这也修复了背景图像。

0

您可以制作像这样的视图层次结构。

enter image description here

制作的ImageView和TableView中的相同尺寸和视图导航的ImageView的地方如下表视图。

然后将您的背景图像添加到ImageView并使TableView的背景清除颜色。

+0

嘿,谢谢你的回复!不幸的是,我的TableView是ViewController的直接子代(所以没有中间的“视图”)。因此,我不能让图像成为tableview的兄弟,你有一个想法如何克服这一点? –

+0

为什么不能使用ViewController而不是TableViewController?重构ViewController内部的TableView是一项工作,但我认为这更容易,并且会给你一个可靠的结果。 – Emma

+0

感谢您的帮助,我现在发现了一种使用TableViewController修复背景图片的方法,并发布了上面的答案。尽管如此,谢谢你的帮助! –