に左パディングを追加するのに問題がありますUIButton
。私はとを持ってUIButton
いUIControlContentHorizontalAlignmentLeft
ます。テキストを左側に表示したいのですが、左すぎます。私がボーダーを与えるとき、それはよく見えません。CSSのように約5pxのテキストにパディングを付けたいと思います。私は解決策をグーグルで検索しましたが、特にの解決策を見つけることができませんUIButton
。助けてくれてありがとう。
6 に答える
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
Xcode 6 では、IB でタイトル インセットを指定できます。
これを解決する別の例を次に示します。
[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];
幸運を!
_myButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
_myButton.contentEdgeInsets = UIEdgeInsetsMake(0, 10, 0, 0);