图案填满整个屏幕

时间:2012-10-29 05:31:49

标签: ios cocoa-touch uiview uiviewcontroller

我的应用的每个屏幕都有一个共同的色调。它不是背景。它是一个填满整个屏幕的图案,它是所有视图的顶部。您可以在同一屏幕内看到图案从一个视图连续流动到另一个视图。它既不模糊其他元素也不参与事件处理。

我尝试在我的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的所有其他子视图设置公共alpha以显示后面的模式。在大多数情况下,这将是多余的。

有更好的方法吗?

2 个答案:

答案 0 :(得分:0)

使你的tintView成为UIView的子类并实现hitTest:withEvent:方法,返回nil。这将使您的视图对触摸透明。或者将userInteractionEnabled设置为NO

答案 1 :(得分:0)

使用background color

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