Swiftを使用してUIImageに二重の境界線を作成するにはどうすればよいですか?

Dec 04 2020

私はSwiftでこのようにするための「ダブルボーダー」トリックを探してみました。これはUIImageの「二重枠」のようなものだと思います。

コードをご存知でしたら教えてください。:)

回答

1 AJ16 Dec 04 2020 at 14:27

UIViewを取得して、その中にUIImageViewを追加するだけです。クリアするには、UIViewの色をクリアします。

これは私がストーリーボードを使用して行ったことです。

  1. UIViewとその中にUIImageViewを追加しました。ビューの色はクリアに設定され、画像ビューはすべての側面から15ポイントになります。要件に応じて変更してください(画像1を参照)。

  2. これはビューコントローラのコードです(画像2を参照)。

  3. 出力(画像3を参照)。

:基本的な考え方ですが、必要に応じて色や境界線の幅などを変更できます。

ストーリーボードのレイアウト

コントローラコードを表示する

出力

2 SumitJain Dec 04 2020 at 11:55

UIImageViewのデフォルトレイヤーにborderColor(black)とcornerRadiusを追加する必要があります。これに加えて、borderColorを灰色としてUIImageViewに別のサブレイヤーを追加する必要があります。

imageView.layer.borderWidth = 4.0
imageView.layer.borderColor = UIColor.gray.cgColor
imageView.layer.cornerRadius = imageView.frame.width / 2

let borderLayer = CALayer()
borderLayer.frame = imageView.bounds
borderLayer.borderColor = UIColor.black.cgColor
borderLayer.borderWidth = 14.0
borderLayer.cornerRadius = borderLayer.frame.width / 2
imageView.layer.insertSublayer(borderLayer, above: imageView.layer)

添付の遊び場のデモをご覧ください。

PeterDu Dec 04 2020 at 11:09

UIImageViewとUIImageの間のサブビューとして1つの円(UIView)を追加できると思います。たとえばgray、外側のcornerRadiusの色でUIImageViewを初期化できます。次に、サークルUIViewを追加し、最後にUIImageを追加します。

または、代わりに、円UIViewの前にUIImageを追加することもできます(背景が透明)。

私はあなたがここで同様のコードを見つけることができると思います:画像ビュー二重境界線