UIButtonに画像を貼り付ける (ソースコード編 UIViewContentModeで丁度よく) (swift2.0)(UIViewContentMode)(AspectFit)
前回はStoryboardにてボタン画像の貼り付けしましたが、今回はソースコードの貼り付けを行います。
Storyboardも便利ですが、ソースコードの方が明確に目に見えて指定するので、こちらの方が好みの方も多いのではないでしょうか。
Githubは以下です。
あと以下のページを参考にしています。
▶︎Study Swift: UIButton with an image. Scale: aspect fit.
自分ポイント1
準備として、StoryboardのUIButtonからOutletを.swiftファイルに紐付けしておいて下さい。
自分ポイント2
viewDidLoad
あたりでimageをセットします。
セット方法は(ボタンのOutlet).setImage((貼り付ける画像のUIImage)!, forState: (貼り付けたい状態))
です。
forState では、どの状態(ボタンを押している、押していないなど)の時について画像を貼り付けるを指定します。
今回は
- ボタンを押している時 → .Default
- ボタンを押していない時 → .Highlighted
で指定します。
button.setImage(buttonImageDefault!, forState: .Normal) button.setImage(buttonImageSelected!, forState: .Highlighted)
自分ポイント3
どのように画像をセットするかを指定します。
指定方法は以下になります。
- (ボタンのOutlet).imageView?.contentMode = UIViewContentMode.(セット方法の指定)
セット方法の指定について代表的な方法として以下があります。
- ScaleAspectFit
- ScaleAspectFill
- ScaleToFill
今回はボタンの縦横比を変えずにViewからはみ出ないように目一杯広げるので ScaleAspectFit を使用します。
以下にソースコードを貼っておきます。
ScaleAspectFill, _ ScaleToFill_ についてはコメントアウトしています。もしよろしければコメントを外してみて、どのような表示になるのかを確認してみて下さい。
import UIKit class ViewController: UIViewController { @IBOutlet weak var button: UIButton! let buttonImageDefault :UIImage? = UIImage(named:"buttonDefault.png") let buttonImageSelected :UIImage? = UIImage(named:"buttonSelected.png") override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. button.setImage(buttonImageDefault!, forState: .Normal) button.setImage(buttonImageSelected!, forState: .Highlighted) button.imageView?.contentMode = UIViewContentMode.ScaleAspectFit //Aspect比一定でViewからはみ出さない大きさまで目一杯広げる //button.imageView?.contentMode = UIViewContentMode.ScaleAspectFill //Aspect比一定でViewから縦横の一方がはみ出る形で目一杯広げる //button.imageView?.contentMode = UIViewContentMode.ScaleToFill //Aspect比を保たずにViewの大きさまで目一杯広げる } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } @IBAction func pressButton(sender: AnyObject) { } }
「ボタンを押してないんだけど押したことにしたい」なんて時 (例えばこんな時) もありますので、そんな時は今回の方法で画像を差し替えてもよいと思います。
ボタンシリーズはこれにて終了。