web-dev-qa-db-ja.com

iPhoneのボタンでUIEdgeInsetsプロパティを使用する方法

私はiOSアプリケーション開発に不慣れで、ボタンでUIEdgeInsetsプロパティを使用する方法を知りたいので、私をガイドしてください。

19
Ankit

まず、あなたが達成しようとしていることに関してあなたの質問はあまり明確ではないので、...一般的な質問をして、一般的な答えを得てください。

UIButtonには、UIEdgeInsetsタイプの3つのプロパティ– contentEdgeInsetstitleEdgeInsets、およびimageEdgeInsetsがあります。これらのプロパティを使用して、タイトルと画像の両方、またはいずれか一方を個別に含む、すべてのボタンコンテンツに特定のインセットを割り当てることができます。

UIEdgeInsets値を作成するには、UIEdgeInsetsMake()関数を使用します。 UIEdgeInsetsは、(それぞれ)上、左、下、右のインセット値の4つの異なるCGFloat値をカプセル化します。正のインセット値はコンテンツ領域を縮小し、負のインセット値は効果的にそれを増やします。

UIButtonでUIEdgeInsetsを使用する方法についてより具体的な質問がある場合は、質問する方法を考え直して、再試行することをお勧めします。 :)

編集(コメント内の質問に対処するため):次のようにすると思います:

UIEdgeInsets titleInsets = UIEdgeInsetsMake(0.0, 7.0, 0.0, 0.0);
button.titleEdgeInsets = titleInsets;
76
Bryan Henry

ボタンにextensionが必要で単純に使用する場合は、これを使用します

button.setInset(上:0.0、左:7.0、下:0.0、右:0.0)

extension UIButton {
    /**
        Creates an Edge inset for a button
        :param: top CGFLoat
        :param: left CGFLoat
        :param: bottom CGFLoat
        :param: right CGFLoat
    */
    func setInset(#top: CGFloat, left: CGFloat, bottom: CGFloat, right: CGFloat) {
           self.titleEdgeInsets =  UIEdgeInsetsMake(top, left, bottom, right)
    }
}
3
YannSteph

場合によっては、contentEdgeInsetsを設定する必要がないことに注意してください。ボタンの高さと幅の制​​約を大きくするだけです。タイトル自体は自動的に中央に配置されます。

0
nuynait