誰かが私をここで助けてくれますか? iPhone開発者として新たに。 iPhoneの標準である長方形ではなく、円で.png画像を表示しようとしています
まあ、すべての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];
このコードを試してください
yourImageView.layer.cornerRadius = yourImageView.frame.size.height /2;
yourImageView.layer.masksToBounds = YES;
yourImageView.layer.borderWidth = 0;
iOS 7のようなこのショーの画像
Swift拡張機能を使用した私の貢献は、UIImageViewを円として設定するために使用されます
_extension UIImageView{
func asCircle(){
self.layer.cornerRadius = self.frame.width / 2;
self.layer.masksToBounds = true
}
}
_
MyImageView.asCircle()
を呼び出すだけです
UIImageViewを使用して、cornerRadiusを高さと幅の半分に設定します。 view.layer.cornerRadius = cornerRadius;
これを試して、画像ビューの角を丸くし、角に色を付けます。
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の高さと幅が同じである必要があります。
ビューにイメージが2つしかない場合は、イメージビューのcornerRadiusを変更するとうまくいきます。ただし、イメージビューがテーブルビューにある場合、パフォーマンスが影響を受けます。
他のオプションのいくつか:
Swift 4:これにより、.pngが円で表示されます。
IBOutlet
をコードに向かってドラッグ(Ctrl +クリック)します。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
正方形以外の画像で機能する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"