【Swift】Storyboardを使わずにUIScrollViewの中にUITextFieldなどを追加する方法

私の調べ方が悪いのだと思いますが…UIScrollView を実装した後に、その子要素として UITextFieldUILabel などの UIView を追加する方法を説明する良い記事が見つからなかったので、未来の私のためにまとめ。
Storyboard を使う記事はすぐ見つかったのですが、コードのみで実装している記事は見つからなかったのですよね。

なお、UIScrollView 自体の実装についてはこちらの記事を参考にさせていただきました。

[Swift4]スクロールビューの使い方 – Qiita
https://qiita.com/tojo/items/ee054559ae84aaeaae39

 

さて実装方法ですが、下記のサンプルコードのように実装するだけでした。

let scrollView = UIScrollView()
//scrollViewの大きさを設定。
scrollView.frame = self.view.frame
//スクロール領域の設定
scrollView.contentSize = CGSize(width: self.view.bounds.width, height: 550)
self.view.addSubview(scrollView!)

// TextField を作成
let username = UITextField(frame: CGRect(x: 0, y: 0, width: 300, height: 50))
username.delegate = self
username.layer.position = CGPoint(x: self.view.bounds.width/2, y: 100)
scrollView.addSubview(username)

ポイントは最後の行で、通常は self.view.addSubview(username) と指定するところを scrollView.addSubview(username) とするだけでした。
上記のように指定することで、UIScrollView に対して UITextField を追加することができます。
変更する箇所はここだけでした。
もちろん、UILabelUIButton なども同様に追加できます。

 

以上、UIScrollView に、UITexrField などの UIView を子要素として追加する方法でした。
Storyboard は 複数人での開発時が面倒になるので、コードのみで実装しています。
ご参考になれば幸いです。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG