小学理科720872 views
高校生物552513 views
中学数学624513 views
数学講師2900085 views
高校物理161327 views
高校日本史190786 views
高校化学2928968 views
高校国語789226 views
いろは3019021 views
世界の国566092 views
Help
Tools

English

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などで指定する。