

UIButtonでオリジナルの画像を使い、カスタムボタンを作っているのですが、画像とテキストを一緒に載せることができません。ボタンは画像のみしか表示されないです。どうすればテキストもボタン上に表示できるのでしょうか？宜しくお願い致します。また都合上storyboardは使っていないのでコードでの改善策を教えていただけると嬉しいです。

[code]

    let buttonImageDefault :UIImage? = UIImage(named:"btn_default")//ボタンの画像
    let buttonImageSelected :UIImage? = UIImage(named:"btn_selected")//押された時のボタンの画像
    
    
    let exitButton = UIButton(type: UIButtonType.Custom)
    exitButton.frame = CGRect(x: board.bounds.midX -buttonImageDefault!.size.width / 2,
                              y: board.bounds.midY - buttonImageDefault!.size.height / 2,
                              width: buttonImageDefault!.size.width,
                              height: buttonImageDefault!.size.height)
    
    exitButton.setImage(buttonImageDefault!, forState: UIControlState.Normal)
    exitButton.setImage(buttonImageSelected!, forState: UIControlState.Highlighted)
    exitButton.setTitleColor(UIColor.blackColor(), forState: .Normal)//ボタンが白系なのでテキストは黒色
    exitButton.setTitle("終了", forState: .Normal)
    
[/code]


CC BY-SA 3.0
2016-06-29T09:56:58.463
27187
2016-11-19T18:26:04.043
15349
question
swift ios iphone uikit
UIButtonにて画像とテキストを載せる方法


自分で回答することになりますが、修正できましたので一応載せておきます。一番下のtitleEdgeInsetsの一行を追加したら文字の位置を修正できました。おそらくテキストは存在していたのだけれど、位置が悪く見えてなかったのだと思われます。なぜテキストの位置がずれるのか、わかる方いましたらご教授願います。また、他の改善方法がありましたら是非お教え願います。

[code]

    let buttonImageDefault :UIImage? = UIImage(named:"btn_default")//ボタンの画像
    let buttonImageSelected :UIImage? = UIImage(named:"btn_selected")//押された時のボタンの画像
    
    let exitButton = UIButton(type: UIButtonType.Custom)
    exitButton.frame = CGRect(x: board.bounds.midX -buttonImageDefault!.size.width / 2,
                          y: board.bounds.midY - buttonImageDefault!.size.height / 2,
                          width: buttonImageDefault!.size.width,
                          height: buttonImageDefault!.size.height)
    
    exitButton.setImage(buttonImageDefault!, forState: UIControlState.Normal)
    exitButton.setImage(buttonImageSelected!, forState: UIControlState.Highlighted)
    exitButton.setTitleColor(UIColor.blackColor(), forState: .Normal)//ボタンが白系なのでテキストは黒色
    exitButton.setTitle("終了", forState: .Normal)
    
[/code]

//ここの部分

[code]

    exitButton.titleEdgeInsets = UIEdgeInsetsMake(0.0, -board.bounds.midX+exitButton.bounds.midX, 0, 0)
    
[/code]


CC BY-SA 3.0
2016-06-29T11:33:08.927
27189
2016-06-29T11:55:00.703
2016-06-29T11:55:00.703
15349
15349
27187
answer