71

に左パディングを追加するのに問題がありますUIButton。私はとを持ってUIButtonUIControlContentHorizontalAlignmentLeftます。テキストを左側に表示したいのですが、左すぎます。私がボーダーを与えるとき、それはよく見えません。CSSのように約5pxのテキストにパディングを付けたいと思います。私は解決策をグーグルで検索しましたが、特にの解決策を見つけることができませんUIButton。助けてくれてありがとう。

4

6 に答える 6

131

titleEdgeInsetsボタン タイトルを描画する四角形の端のインセットまたはアウトセット マージン。

@property(nonatomic) UIEdgeInsets titleEdgeInsets

説明このプロパティを使用して、ボタン タイトルの有効な描画四角形のサイズと位置を変更します。4 つのインセット (上、左、下、右) のそれぞれに異なる値を指定できます。正の値を指定すると、そのエッジが縮小または挿入され、ボタンの中心に近づきます。負の値は、そのエッジを拡張またはアウトセットします。UIEdgeInsetsMake 関数を使用して、このプロパティの値を構築します。デフォルト値は UIEdgeInsetsZero です。

利用可能 iOS 2.0 以降で利用できます。

UIButton.h で宣言

これを試してみてください:)

[myButton setTitleEdgeInsets:UIEdgeInsetsMake(0.0, 5.0, 0.0, 0.0)];

また、カスタム ボタンを使用している場合は、コンテンツ インセットやイメージ インセットなどがあります。

Swift を探してここにたどり着いた場合に備えて。これは有効な Swift 3.0 です

myButton.titleEdgeInsets = UIEdgeInsets(top: 0.0, left: 5.0, bottom: 0.0, right: 0.0)

直接設定することもできます。1 つまたは 2 つのプロパティを使用する場合に役立ちます。

myButton.titleEdgeInsets.top = 0
myButton.titleEdgeInsets.left = 5
myButton.titleEdgeInsets.bottom = 0
myButton.titleEdgeInsets.right = 0
于 2012-05-14T18:45:35.457 に答える
30

Interface Builder (IB) を介してこれらのインセットを設定する場合は、Xcode 8 を投稿してください。これらのインセット設定は、属性インスペクターではなくサイズ インスペクターにあります。

お役に立てれば。

ここに画像の説明を入力

于 2017-01-05T10:03:56.007 に答える
27

Xcode 6 では、IB でタイトル インセットを指定できます。

インターフェイス ビルダー エッジ タイトル インセット

于 2015-02-04T02:05:29.510 に答える
7

これを解決する別の例を次に示します。

 [self.myButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];

    float padding_button                = 6.0f;
    UIEdgeInsets titleInsets            = UIEdgeInsetsMake(0.0f, padding_button, 0.0f, -padding_button);
    UIEdgeInsets contentInsets          = UIEdgeInsetsMake(padding_button, 0.0f, padding_button, 0.0f);
    CGFloat extraWidthRequiredForTitle  = titleInsets.left - titleInsets.right;
    contentInsets.right += extraWidthRequiredForTitle;
    [self.myButton setTitleEdgeInsets:titleInsets];
    [self.myButton setContentEdgeInsets:contentInsets];
    [self.myButton sizeToFit];

また、ボタンに画像がある場合は、次のように簡単に追加できます。

[self.myButton setImage:[UIImage imageNamed:@"YourImage.png"] forState:UIControlStateNormal];

幸運を!

于 2014-06-01T14:20:21.660 に答える
4
_myButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
_myButton.contentEdgeInsets = UIEdgeInsetsMake(0, 10, 0, 0);
于 2016-05-11T09:06:32.563 に答える