Object-c Swift書き換え
material designがObject-Cでかかれていた
@property(nonatomic) MDCTextField *usernameTextField; //TODO: Instantiate Text Fields self.usernameTextField = [[MDCTextField alloc] initWithFrame:CGRectZero]; self.usernameTextField.translatesAutoresizingMaskIntoConstraints = NO; self.usernameTextField.delegate = self; self.usernameTextField.clearButtonMode = UITextFieldViewModeUnlessEditing; self.usernameTextField.backgroundColor = self.scrollView.backgroundColor; [self.scrollView addSubview:self.usernameTextField];
Swiftで書き換える
変数の初期化
//usernameTextFieldのインスタンスがあれば利用 なければ{ 以下のクロージャーで生成 let usernameTextField: MDCTextField = { //usernameにMDCTextField型でフレームは .zeroを入れる .zeroとは x:0,y:0, width: 0, height: 0 のgetterである 以下に写真を添付 let username = MDCTextField(frame: .zero) //生成した usernameを返却 return username }()
オプショナルバインディング? だったかな便利な処理
呼び出すまでインスタンスは生成されない
生成済みであれば、それをそのまま返却する
ここではクロージャーを利用