web-dev-qa-db-ja.com

フレーム画像に合わせてUIImageを切り抜きます

デバイスカメラで撮影したUIImageをトリミングして、UIImage(丸い境界線など)を表す別のframeに収まるようにする必要があります。以下の画像を確認してください。

enter image description here アスペクト塗りを使用する

enter image description here アスペクトフィットを使用する

だから、私が必要なのは、フレームの境界外にある余分な画像を削除することです。 UIBezierPathCGImageRefなど、Googleで検索した他のメソッドを使用してみましたが、これに対する解決策が見つかりません。

44
CainaSouza

Interface Builderで、次の構成を使用します。

enter image description here

次の2つの重要な設定があります。

  1. Mode: Aspect Fill

  2. Clip Subviews

プログラムで実行することもできます。

[imageView setContentMode:UIViewContentModeScaleAspectFill];
[imageView setClipsToBounds:YES];

これにより、ビューが画像で正しく埋められ、アスペクト比が維持され、適合しないものが非表示になります。

127

コントローラーでIBOutletを作成します。

_@property (retain)IBOutlet UIImageView* imageView;
_

および-(void) viewDidLoad set

_imageView.layer.masksToBounds = YES;
_
4
Remizorrr

インターフェースビルダーで、詳細ペイン(4番目)内のModeメニューにアクセスし、UIImageView( 「センター」または「アスペクトフィット」と思われます。

enter image description here

古い回答:

CALayerの contentGravity プロパティを使用して機能させることができます

レイヤーのコンテンツが境界内でどのように配置またはスケーリングされるかを指定する定数。

       @property(copy) NSString *contentsGravity
1
sergio