Irohabook
0
1001

SwiftでUITextFieldなどを表示するときはaddSubviewを忘れないようにする

Storyboardを使わないでUITextFieldなどを表示したいときは、UIViewControllerのフィールドにUITextFieldなどを直接入れる。

多くのサンプルではviewDidLoadの中で宣言しているが、だいたい現実的でない。UIViewControllerのフィールドで宣言して、viewDidLoadなどで表示するようにする。

class TestViewController: UIViewController {

    var emailText : UITextField = UITextField()

    override func viewDidLoad() {
        super.viewDidLoad()
        emailText.frame = CGRect(x: 0, y: 120, width: self.view.frame.width/2, height: 48)
        emailText.center.x = self.view.center.x
        self.view.addSubview(emailText)

UIViewControllerのviewはUIViewというクラスのインスタンスであり、UIViewには画面を追加する関数addSubviewを持っている。Appleの公式ページによると、この関数は画面を一番最後に追加するようだ。もちろん実際の位置はframeなどで指定する。

次の記事

UIView