したがって、ユーザーに存在する高さと幅のフレームで初期化されたuiviewがあります。ユーザーがこのフレーム内に描画できるようにしたいのですが、ユーザーがボタンを押すと、ビューがカットされます。その余分な無駄なスペースを取り除いて、フレームがユーザーが描いていたものと同じ大きさになるようにします。私はこのようなことをしようとしました
CGRect boundbox = CGPathGetBoundingBox([myPath CGPath]);
boundbox.origin.x = self.frame.origin.x;
boundbox.origin.y = self.frame.origin.y;
self.frame = boundbox;
ただし、これによって余分な無駄なスペースが削除されるわけではなく、ビューのサイズが変更されるだけなので、描画されたコンテンツは以前よりも小さく見えます。代わりに私がやりたいのは、その「空白」を削除することです。uiviewのコンテンツをスケールアップできるかどうかを考えていましたが、よくわかりません。
私が何を意味するのかを明確にするために:
赤い境界線はユーザーが描画できる領域/フレームであり、中央のテキストは描画です。ユーザーがボタンを押すと、図2のようにフレームが描画を囲むだけになります。
次のシナリオがあるとしましょう。画面の中央に円を描きました。
次にボタンを押すと、スケールは同じままですが、円は同じ位置にありますが、描画領域が変更されたため、円/描画は図4のように切り取られたように見えます。
私がやりたいのは、描画/ベジェパスをフレームの中央に配置されるように移動することです。赤い領域が青い円を囲むようにします。