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 のプロパティの背景として設定し、他のすべてのサブビューに共通のアルファを設定して、view背後にあるパターンを表示することです。それはほとんどの点で冗長になります。

これを行うより良い方法はありますか?

4

2 に答える 2

0

で設定background colorしますTextured image

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

tintView をサブクラスにUIViewしてメソッドを実装し、hitTest:withEvent:nil を返します。これにより、ビューがタッチに対して透明になります。または に設定userInteractionEnabledNOます。

于 2012-10-29T05:49:45.350 に答える