1. ホーム
  2. ios

[解決済み] UIViewの外側にボーダーを追加する(内側ではなく)。

2023-04-06 07:45:52

質問

ビューにボーダーを追加する場合、以下のようなコードを使用します。

self.layer.borderColor = [UIColor yellowColor].CGColor;
self.layer.borderWidth = 2.0f;

の場合、ボーダーは以下のようにビューの中に追加されます。

右側のビューはオリジナルのビューです。見ての通り、ボーダー表示の黒い領域はオリジナルのビューより少なくなっています。 黒い部分は元のビューと同じですが、どのように実装できますか?

どのように解決するのですか?

残念ながら、ボーダーを外側に揃えるために設定できる小さなプロパティはありません。UIViews のデフォルトの描画操作ではその境界内に描画されるため、内側に整列して描画されます。

思い浮かぶ最も簡単な解決策は、ボーダーを適用するときに、ボーダーの幅のサイズによってUIViewを拡張することです。

CGFloat borderWidth = 2.0f;

self.frame = CGRectInset(self.frame, -borderWidth, -borderWidth);
self.layer.borderColor = [UIColor yellowColor].CGColor;
self.layer.borderWidth = borderWidth;