UIButtonに画像をセットする方法です。setImage()メソッドを使います。
間違って、self.button.imageView?.image = picture のように書いてしまうとセットされないので要注意。
実行環境
Swift:4.1.2
Xcode:10.1
UIButtonに画像をセットする方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
import UIKit class ViewController: UIViewController { @IBOutlet weak var button: UIButton! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. } override func viewDidLayoutSubviews() { super.viewDidLayoutSubviews() self.button.frame = CGRect(x: (self.view.frame.size.width / 2) - 150, y: (self.view.frame.size.height / 2) - 50, width: 300, height: 100) let picture = UIImage(named: "Sample") self.button.setImage(picture, for: .normal) } } |
今回、画像ファイルを設定しているのに、一向に読み込まれず、青いボタンになって表示されてしまい、ちょっと焦りました。。
その場合は、ButtonのTypeをCustomにすることでも、直りました(今回は、Systemになっていました)。
また、ButtonのTypeはSystemのままでも、画像の描画設定を変えることでも対応可能です。
Assets.xcassetsに画像をセットし、Xcodeの右側の上から2つ目にある、「Render As」 のところで 「Original Image」としたら表示されました。動画の拡張子は.jpegのものだったのですが、そのまま読み込んでくれないことがあるようです。
なお、Assets.xcassetsに画像をセットした場合は、Sample.jpegは、UIImage(named: “Sample”)で読み込めますが、そうでないディレクトリに画像を置いている場合は、UIImage(named: “Sample.jpeg”)のように記述することも可能です(ただし、その場合だと画像の描画設定をいじれないので、表示する場合は、ButtonのTypeをCustomにして表示することになります)。