2011-10-29 78 views
5

是否可以將UIView與圖像疊加而不使用Interface Builder中的UIImageView用背景圖片疊加UIView

如果不是,你會如何在代碼中完成相同的操作?

回答

3

如果上覆的UIView你的意思是繪畫與圖像的背景,可以這樣做:

someView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"yourImage.png"]]; 

你也可以添加一個新的UIImageView通過代碼覆蓋你的UIView ,初始化您的UIImageView與您的UIView具有相同的框架Rect並將其添加爲子視圖。

+0

非常好,謝謝。所以,沒辦法從IB那裏做,對吧? – JAM

+0

對,因爲colorWithPatternImage函數是一個自定義的方法,所以它不是出現在IB上的選項。只有單一顏色可供選擇。儘管可以通過創建覆蓋視圖並具有相同框架的UIImageView完成與IB相同的任務。當您不希望您的視圖被遮蓋時,您可以簡單地將它的隱藏屬性設置爲YES/NO。 –

+0

我可能會去'UIImageView'選項,因爲我猜測它會比生成一個模式,然後核心圖形然後將繪製出圖塊等繪製後更優化。 –

5

從UIView的文檔:

基於圖像的背景 - 對於顯示相對靜態的內容視圖,可以考慮使用一個UIImageView對象與手勢識別的子類,而不是和繪圖自己的圖像。或者,您也可以使用通用UIView對象,並將圖像指定爲視圖的CALayer對象的內容。

使用第二個選項,設置someViewyourImage.png的背景:

someView.layer.contents = (id)[[UIImage imageNamed:@"yourImage.png"] CGImage];