hoz blog

営業からSEに転職した文系エンジニアです。プログラミングと趣味の株に関してブログを書いていこうと思います。

【Swift】ScrollViewにボタンをつけることで任意のイメージを選択時に背景画像に適用する

UIScrollViewにボタンをつけることで任意のイメージを選択時に背景画像に適用する方法を記載。


まず、ストーリーボードにUIScrollViewを配置
f:id:takanori5:20171022231805p:plain

続いてソースに関連付け

    @IBOutlet var sc: UIScrollView!

f:id:takanori5:20171022231936p:plain

あとは以下のようにコードをゴリゴリ書きましょう

   //scrollView用
    var uv = UIView()

//以下はvieDIdLoad内に記述することで画面表示時に scrollViewに画像がセットされている状態にする

        //位置とサイズを決める
        uv.frame = CGRect(x: 0, y: 418, width: self.view.frame.size.width*2, height: 128)
        
        //UIButtonを作成
        for i in 0..<6{
            let button:UIButton = UIButton()
            //x軸はi*80都することでボタンを一定間隔ごとに配置していく
            button.frame = CGRect(x: i*80, y: 0, width: 80, height: 80)
            button.tag = i
            //どこのメソッドを呼ぶか定義しておく
            button.addTarget(self, action: #selector(tap/*これを呼ぶ*/), for: .touchUpInside/*タッチアップ時にメソッド発動*/)
            let buttonImage:UIImage = UIImage(named: String(i) + ".jpg")!
            button.setImage(buttonImage, for: UIControlState.normal)
            uv.addSubview(button)
        }
        //scrollViewにUIViewを貼り付ける
        sc.addSubview(uv)
        ///scrollVieのサイズをUIViewのサイズに合わせておく(2倍のサイズにしているためスクロールする)
        sc.contentSize = uv.bounds.size