2012-10-29 174 views
0

我的應用程序的每個屏幕都有一個共同的色調。它不是背景。它是一種填充整個屏幕的模式,它是所有視圖的首選。您可以在同一屏幕內,從一個視圖到另一個視圖持續看到圖案流。它既不模糊其他元素也不參與事件處理。圖案填充整個屏幕

我試着用我的ViewController中的這段代碼來實現它。

UIColor* texture = [UIColor colorWithPatternImage:[UIImage imageNamed:@"Texture.png"]]; 
UIView* tintView = [[UIView alloc] initWithFrame:self.view.bounds]; 
[tintView setBackgroundColor:texture]; 
[tintView setAlpha:0.5]; 
[self.view addSubview:tintView]; 

但它沒有傳達給它背後的意見。

tintView不應該參與任何事件處理。相反,它應該讓它背後的其他元素,像他們通常那樣處理事件。

這樣做的其他方法是將此設置爲UIViewController的view屬性的背景,併爲所有其他子視圖view設置通用字母以顯示背後的模式。在大多數情況下,這將是多餘的。

有沒有更好的方法來做到這一點?

回答

0

讓你的tint查看UIView的一個子類並實現hitTest:withEvent:方法,返回nil。這將使您的視圖變得透明。或者將userInteractionEnabled設置爲NO

+0

它的工作原理。謝謝 – Anand

0

設置background colorTextured image

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