LoginSignup
13
13

More than 5 years have passed since last update.

UIButtonの画像(imageView)の左寄せ、右寄せ(alignment)の設定

Last updated at Posted at 2014-09-02

参考

http://stackoverflow.com/questions/17873879/aligning-image-and-title-in-uibutton

要約

contentHorizontalAlignment のプロパティを指定すればいい
その後にtitleEdgInsetsimageViewInsetsをそれぞれ設定すればおk

実装

- (void)createButton
{
    UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
    [self.view addSunbView:btn];

    [btn setTitle:@"てすと" forState:UIControlStateNormal];
    [btn setImage:[UIImage imageNamed:@"hoge_20x20.png"] forState:UIControlStateNormal];
    btn.frame = (CGRect){0,0,320,44};
    // [  ●てすと  ] ← 現在のボタンの見た目

    btn.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
    // [●てすと    ] ← 左寄せ

    btn.imageEdgeInsets = (UIEdgeInsets){0,10,0,0};
    btn.titleEdgeInsets = (UIEdgeInsets){0,btn.imageEdgeInsets.left + 10,0,10};
    // [ ●てすと    ] ← 細かい調整
}

備考

contentHorizontalAlignmentを使わずにdrawRectとかでframeいじったり
edgeInsetsだけで頑張ろうとすると
ボタンクリックした時だけデフォルト設定に戻るとか、
テキストが長すぎると画像の位置がずれるとかめんどくさいことになる なった
多分いけるはず

13
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
13