小学算数1197561 views
雑学1473058 views
英語610172 views
中学理科1628254 views
中学数学622374 views
小学社会309124 views
数学講師2867555 views
高校国語786623 views
高校物理158886 views
高校倫理1436242 views

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