web-dev-qa-db-ja.com

サークル内のUIImage

誰かが私をここで助けてくれますか? iPhone開発者として新たに。 iPhoneの標準である長方形ではなく、円で.png画像を表示しようとしています

21
Wilmer

まあ、すべてのpngファイルは「四角形」ですが、画面上に円や他の非四角形のオブジェクトの外観を表示したい場合は、透明度を使用して行うことができます。画像の透明ピクセルがiPhoneでも透明であることを確認するには、UIImageViewの背景色をクリアに設定します。これは、Interface Builderで、背景色ピッカーの不透明度スライダーを一番下までドラッグするか、次のコードで実行できます。

UIImage *image = [UIImage imageNamed:@"yourRoundImage.png"];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
imageView.backgroundColor = [UIColor clearColor];
[self.view addSubview: imageView];

丸みを帯びたコーナーを追加したいだけの場合、プロジェクトにQuartzCoreフレームワークを追加していれば、次のようにcornerRadiusプロパティを使用できます。

#import <QuartzCore/QuartzCore.h>
UIImage *image = [UIImage imageNamed:@"yourRoundImage.png"];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
imageView.layer.cornerRadius = image.size.width / 2;
imageView.layer.masksToBounds = YES;
[self.view addSubview: imageView];
52

このコードを試してください

yourImageView.layer.cornerRadius = yourImageView.frame.size.height /2;
yourImageView.layer.masksToBounds = YES;
yourImageView.layer.borderWidth = 0;

iOS 7のようなこのショーの画像

29
Waseem Shah

Swift拡張機能を使用した私の貢献は、UIImageViewを円として設定するために使用されます

_extension UIImageView{

    func asCircle(){
        self.layer.cornerRadius = self.frame.width / 2;
        self.layer.masksToBounds = true
    }

}
_

MyImageView.asCircle()を呼び出すだけです

15
Kevin ABRIOUX

UIImageViewを使用して、cornerRadiusを高さと幅の半分に設定します。 view.layer.cornerRadius = cornerRadius;

IImage角の丸い

9
Tom Belote

これを試して、画像ビューの角を丸くし、角に色を付けます。

self.imgView.layer.cornerRadius =self.imgView.frame.size.height/2;
self.imgView.layer.masksToBounds = YES;
self.imgView.layer.borderColor = [UIColor colorWithRed:148/255. green:79/255. blue:216/255. alpha:1.0].CGColor;
self.imgView.layer.borderWidth=2;

条件*:角を丸くするには、imageViewの高さと幅が同じである必要があります。

4
Md Rais

ビューにイメージが2つしかない場合は、イメージビューのcornerRadiusを変更するとうまくいきます。ただし、イメージビューがテーブルビューにある場合、パフォーマンスが影響を受けます。

他のオプションのいくつか:

  1. サーバーで画像アセットを円にするか、アプリにバンドルされている場合は手動で、円の外側の領域に透明なパーツを配置します。
  2. 画像ビューの背景が変わらない場合は、内側の円の部分を透明にし、残りを背景と同じにするオーバーレイ画像を作成します。また、画像ビューのbackgroundColorをclearColorに設定します。
  3. 画像を受け取ったら、コードで編集して、バックグラウンドスレッドで円になるようにします。
2
Peter Robert

Swift 4:これにより、.pngが円で表示されます。

  1. 画像のIBOutletをコードに向かってドラッグ(Ctrl +クリック)します。

enter image description here

cornerRadiusレイヤーの背景に丸い角を描くときに使用する半径。アニメート可能。 https://developer.Apple.com/documentation/quartzcore/calayer/1410818-cornerradius

clipsToBoundsプロパティサブビューがビューの境界に限定されるかどうかを決定するブール値。 https://developer.Apple.com/documentation/uikit/uiview/1622415-clipstobounds

2. viewDidLoad()内、インスタンスプロパティを使用layer.cornerRadiusおよびclipsToBounds

profileImage.layer.cornerRadius = 50
profileImage.clipsToBounds = true
1
Cons Bulaquena

正方形以外の画像で機能するUIImageViewに少し普遍的な拡張機能を追加します。 cornerRadiusメソッドよりも動作が遅いことに注意してください。

extension UIImageView {
    @IBInspectable public var asEllipse:Bool {
        get {
            if let mask = self.layer.mask {
                return mask.name == kMaskLayerName
            }
            return false;
        }

        set {
            if (newValue) {
                let ellipseMask = CAShapeLayer()
                ellipseMask.name = kMaskLayerName
                ellipseMask.path = CGPathCreateWithEllipseInRect(self.bounds, nil)
                ellipseMask.strokeColor = UIColor.clearColor().CGColor
                ellipseMask.fillColor = UIColor.whiteColor().CGColor
                self.layer.mask = ellipseMask
            } else if self.asEllipse {
                self.layer.mask = nil
            }
        }
    }

}

private let kMaskLayerName="EllipseMaskLayer"
0
user3099609