質問: UIButton(type: .system) button.setImage(image, for: .normal) self.view.addSubview(button) } } ```
回答: `UIButton().setImage(image, for: .normal)`ということは Buttonを新規に作成(`UIButton()`)し、そのButtonに画像をセットしなさい。という命令だと思います。 これだけだと、新規に作成したボタンなので、表示したい画面の`View`に`addSubview`しないと画像を貼ったボタンは画面に表示されないのではないでしょうか? 多分、行うべきは、 1. `Storyboard`に置いたボタンを`@IBOutlet`でソースから参照できるようにし、そのボタンに`setImage`する 2. `UIButton().setImage(image, for: .normal)`で作成したボタンを表示したい`view`に`addSubview`して、`frameRect`プロパティを変更することで目的の位置に移動させる 3. `UIButton().setImage(image, for: .normal)`で作成したボタンを表示したい`view`に`addSubview`して、`AutoLayout`の`layout制約を`設定することで目的の位置に配置する の、いずれかを行う必要があると思います。 3/21 追記 イメージボタンを作成するときに、`type:`パラメーターを`.custom`にする必要があるようです。 下記にこちらで確認出来たサンプルを貼っておきます。 ``` class ViewController: UIViewController { var button: UIButton! let image = UIImage(named: "fugafuga") // 拡張子がpngの時のみ拡張子が不要らしい override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. self.button = UIButton(type: .custom) self.button.setImage(self.image, for: .normal) self.view.addSubview(button) self.button.frame = CGRect(x: 0, y: 0, width: 64, height: 64) }// end override func viewDidLoad() }// end class ViewController ``` あとは、`CGRect()`の`x:`, `y:`パラメーターでオフセットを左上からの距離で、`width:`, `height:`パラメーターでボタンの大きさをお好みで指定して下さい。