<Swift5>コードのみでTextFieldを設置する!(コピペで使えます!)<Xcode11>
スポンサードリンク
スポンサードリンク
今回は、タイトル通りStoryBoardを使わずに、コードのみで、テキストフィールドを設置する方法、そしてカスタマイズする方法を記述していきます。
StoryBoardも便利なのですが、やっぱり保守性等考えると、勝手が悪いので、本気の方は、storyboardは使わずに、コードでアプリ作りをしてみて下さい!
現時点(2019)で最新版です!(Swift関連古い記事多すぎですw)
コピー&ペーストで使えますので、そのままXcode(storyBoard)へコピペして、いろいろいじってみて下さい!!
その他のMethodについては、記事内検索をご活用ください。
また掲載の無いものについては、コメント等に記載いただければ、数日中に掲載いたします。
textFieldに打ち込んだ文字が、決定Buttonを押すと、下のLabelに反映されるという、ものを作ってみました。
import UIKit
class ViewController: UIViewController,UITextFieldDelegate {
let screenWidth = Int(UIScreen.main.bounds.size.width)
let screenHeight = Int(UIScreen.main.bounds.size.height)
// UITextFieldを生成
let textField = UITextField()
// UIButtonを生成
let getButton = UIButton()
//UILabelを生成
let label = UILabel()
var text = ""
override func viewDidLoad() {
super.viewDidLoad()
//textFIeldの位置を指定
textField.frame = CGRect(x: 0, y: screenWidth * 30/100, width: screenWidth, height: screenHeight * 10/100)
//プレースホルダを設定
textField.placeholder = "ここに記入"
// キーボードタイプを指定
textField.keyboardType = .default
// 枠線のスタイルを設定
textField.borderStyle = .roundedRect
// 改行ボタンの種類を設定記入して
textField.returnKeyType = .done
// テキストを全消去するボタンを表示
textField.clearButtonMode = .always
// UITextFieldを追加
self.view.addSubview(textField)
// デリゲートを指定
textField.delegate = self
//テキストフィールドの入力を取得するbutton
getButton.frame = CGRect(x: screenWidth * 45/100, y: screenHeight * 45/100, width: screenWidth * 10/100, height: screenHeight * 10/100)
getButton.setTitle("決定", for: .normal)
getButton.setTitleColor(UIColor.blue, for: .normal)
getButton.backgroundColor = UIColor.white
view.addSubview(getButton)
//ボタンに機能を
getButton.addTarget(self, action: #selector(getText(_:)), for: UIControl.Event.touchUpInside)
//入力されたものが反映されるLabel
label.frame = CGRect(x: screenWidth * 20/100, y: screenHeight * 60/100, width: screenWidth * 60/100, height: screenHeight * 10/100)
label.text = "ここに反映されるよ"
label.textAlignment = .center
label.textColor = UIColor.green
view.addSubview(label)
}
//決定ボタン押されたよ時のfunc
@objc func getText(_ sender: UIButton) {
// 取得した値をLabelに入れる これでtextFieldに入力されたものは自由に使えます!!例えば....
label.text = textField.text!
}
//Doneが押されれた時に、キーボードを閉じる
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}
}
いかがでしたでしょうか?
SwiftUIがXcodeで使えるようになりましたね。。。
大急ぎで、対応しております。。。。
なかなか難解な予感。。。。