0

アプリで特定の機能を実現するのに役立つ方向性を探しています。

少し説明が難しいですが、ここまでです。マルチレイヤーの比喩 (Photoshop 風) を使用して目標を視覚化していますが、これは私のビジョンを説明するためのものです。実際には妥当ではないかもしれません。

3つの「レイヤー」をイメージ

  1. 画像を含む最下層
  2. 上の別のレイヤー - たとえば 50% グレー - ただし、不透明度を下げているため、元のレイヤーは引き続き表示されますが、強調されていません。
  3. 次に、一番上のレイヤーにある 2 つの正方形のオブジェクトは、それぞれが灰色のレイヤーを通り、元のレイヤーに至るまでの「窓」として機能します。これらの窓を通して、元の画像の一部が完全に不透明に見えるようになります。

最後に、各ウィンドウを指で画面上でドラッグして、各ウィンドウを個別に再配置できるようにする必要があります。

理想的にはある種の指のジェスチャーを使用して、各ウィンドウのサイズを調整できる場合(形状ではなく、正方形のまま)、追加のクレジットが得られます。

私はコードを探しているわけではありません (反対はしませんが)。Objective-C でこれを行うためのアプローチを探しています。理想的には、グラフィック フレームワークの一部などの高度なトピックを掘り下げる必要はありません。

ありがとう!トニー。

4

2 に答える 2

1

私はそれを再配置します。代わりに、50% グレーが下部にスタンプされた背景画像のフラット画像を用意します。次に、あなたが持っている2つの正方形は、実際には背景画像が固定位置に設定されたUIImageViewsであり、画像ビューはその画像を境界にクリップします。2 つのイメージビューを移動すると、イメージの原点が移動するだけです。

申し訳ありませんが、これは私が考えていることを説明するのが難しいです。描いてみればいいのに。

于 2013-02-11T22:06:37.247 に答える
0

これが私が試みることの大まかな概要です。

(レイヤーではなく)2つのビューを使用します。一番下のビューは画像ビューになります。

上面図はカスタムビューになります。このカスタムビューには、サブビューとして他の2つのビューがあります。これらの2つのサブビューは、2つの「穴」を表します。パンとズームを処理するために、独自のジェスチャレコグナイザを使用して両方のサブビューを設定します。両方のサブビュー(およびコンテナビュー)に明確な背景と、場合によっては境界線を付けます。このカスタムビューのメインビューには、そのdrawRect:メソッドを実装する必要があります。実装では、部分的に透明な灰色の背景が描画されます。2つのサブビューの位置とサイズを使用して、灰色を描画する前にクリッピング領域を設定します。

2つのサブビューのサイズを変更したり移動したりするたびsetNeedsDisplayに、コンテナビューを呼び出す必要があります。これにより、drawRect:メソッドが呼び出され、灰色の背景が穴で更新されます。

于 2013-02-12T02:14:11.377 に答える