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不应参与任何事件处理。相反,它应该让其背后的其他元素像平常一样处理事件。

其他方法是将其设置为viewUIViewController 属性的背景,并为所有其他子视图设置一个公共 alphaview以显示背后的模式。在大多数情况下,这将是多余的。

有更好的方法吗?

4

2 回答 2

0

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

于 2012-10-29T05:49:45.350 回答
0

background color用一个设置Textured image

UIImage *bgimg = [UIImage imageNamed:@"Texture.png"];
self.view.backgroundColor = [UIColor colorWithPatternImage:bgimg];
于 2012-10-29T05:50:55.953 回答