UIView にパディングを追加する 質問する

UIView にパディングを追加する 質問する

paddingUIView にプロパティを追加する方法を探しています。理想的には、サブクラス化を避けてカテゴリに配置することを望みます。使用法は次のようになります。

myview.padding = UIEdgeInsetsMake(10, 10, 10, 10);

また、内側のパディング ボックスのサイズと位置を説明するpaddingBox値を返すプロパティもあるかもしれません。CGRect

さて、そのようなものをカテゴリに実装するにはどうすればよいでしょうか。最初は を使用することを考えましたboundsが、残念ながら のサイズはboundsのサイズにリンクされておりframe(常に同じ)、座標のみが異なる場合があります。

ベストアンサー1

これは通常、ビュー内の境界を設定することによって行われます。したがって、全周に 10 のインセットが必要な場合は、次のようにします。

view.bounds = CGRectInset(view.frame, 10.0f, 10.0f);

境界は、フレームを基準としたビューの描画可能領域を定義します。したがって、これは実質的にパディングを与えるはずです。その後、境界から 'paddingBox' を取得できます。

お役に立てれば! :)

Swift 5+のアップデートは

view.bounds = view.frame.insetBy(dx: 10.0, dy: 10.0);

おすすめ記事