デバイスカメラで撮影したUIImage
をトリミングして、UIImage
(丸い境界線など)を表す別のframe
に収まるようにする必要があります。以下の画像を確認してください。
アスペクト塗りを使用する
アスペクトフィットを使用する
だから、私が必要なのは、フレームの境界外にある余分な画像を削除することです。 UIBezierPath
、CGImageRef
など、Googleで検索した他のメソッドを使用してみましたが、これに対する解決策が見つかりません。
Interface Builderで、次の構成を使用します。
次の2つの重要な設定があります。
Mode: Aspect Fill
Clip Subviews
プログラムで実行することもできます。
[imageView setContentMode:UIViewContentModeScaleAspectFill];
[imageView setClipsToBounds:YES];
これにより、ビューが画像で正しく埋められ、アスペクト比が維持され、適合しないものが非表示になります。
コントローラーでIBOutlet
を作成します。
_@property (retain)IBOutlet UIImageView* imageView;
_
および-(void) viewDidLoad
set
_imageView.layer.masksToBounds = YES;
_
インターフェースビルダーで、詳細ペイン(4番目)内のModeメニューにアクセスし、UIImageView
( 「センター」または「アスペクトフィット」と思われます。
古い回答:
CALayerの contentGravity
プロパティを使用して機能させることができます
レイヤーのコンテンツが境界内でどのように配置またはスケーリングされるかを指定する定数。
@property(copy) NSString *contentsGravity