私のアプリの機能の 1 つは、画像の自動トリミングを行うものです。
基本的なアイデアは、誰かが一枚の紙 (レシートと考えてください) の写真を撮り、紙の境界が決定された後、画像が自動的にトリミングされるというものです。
OpenCV を使用して、紙の境界線を特定できます。したがって、次に行うことは、各ガイドの「中心」プロパティを変更することです (手動でドラッグできる水平 2 本と垂直 2 本の「線」のみ)。
次に、4 つのガイドのそれぞれを変更するためにすべての呼び出しを行った直後に、別の何かがやってきて、再び「中心」を設定します。(これを証明するために「setCenter」をオーバーライドしました)。中心はこれによってリセットされるようです: [UIView(Geometry) _applyISEngineLayoutValues]。
なぜこれが起こっているのか、またはそれを止める方法はわかりませんが、おそらく制約に関係しています。私のビューは単純な UIButton です。ユーザーが指でタップしてドラッグすると、中心を変更するだけのアクション ルーチンが呼び出されます。これは機能します。
しかし別のケースでは、UIImagePickerController を立ち上げています。彼らが画像を選択した後、用紙の境界を決定し、「ガイド」の中心を変更し、後で「_applyISEngineLayoutValues」でそれらをすべて元に戻します。
この場合、何が起こっているのか分かりますか? または、どのようにビューの中心を設定し、実際にそのままにすることができますか?