0

私は2つ持っていますがUIViews、どちらも明らかにCGRectsそれぞれを持っています。1 つUIViewは画面いっぱいに表示されますが、もう 1 つは画面の一部だけに表示されます。私はCGRect小さい方のを持ってUIViewいますが、その外側の を取得するにはどうすればよいですか?CGRect小さい方のサイズを除いて、背景を暗くすることができますが、内側のコンテンツはできませんUIViewか?

これは私UIViewControllerが何をしようとしているのかをよりよく理解できるように、私がどのように見えるかです:

ここに画像の説明を入力

内側ではなく外側 を暗くしたいのですが、内側を除いてUIView外側の CGRect を持っていないので、今のところ逆にする必要がありました。UIView

4

2 に答える 2

4

CGRect は正方形のサイズです。外側のアリアを知りたい場合は、4 つの CGRect を計算する必要があります。上、左、右、および下のスペース。

于 2012-10-24T06:33:57.040 に答える
0

ですから、外側のビューがコンテンツの描画を担当し、内側のビューが選択長方形のように見えますよね?

もしそうなら、この選択モードをアクティブにすると、コンテンツを 2 回描画したくなると思います。あなたはするであろう:

  1. 淡色表示で 1 つのパスを描画します - 自分で色を調整します (ここのコードを使用して、領域全体を描画するか、内側の領域を切り取ることができます)
  2. 選択長方形の長方形内のコンテンツのみが描画されるように、クリップ長方形セットアップで2番目の内側パスを描画します

または

  1. 通常のようにすべてのコンテンツを描画します
  2. クリッピング マスクを設定し (ここのコードを使用して、外側の領域だけがレンダリングされるようにします)、シーン全体にある程度の透明度を持つ黒い四角形を描画します
于 2012-10-24T07:13:06.143 に答える