高校国語788069 views
中学理科1630106 views
いろは3008160 views
ヒストリア289845 views
雑学1473531 views
小学社会310341 views
高校生物551532 views
高校倫理1439348 views
中学社会668540 views
中学数学623537 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などで指定する。