2015-12-21 197 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修復背景圖片的方法,併發布了上面的答案。儘管如此,謝謝你的幫助! –