swiftでよく使うソースコードによる装飾
swiftでよく使うソースコードによる装飾をメモし続ける。随時追加していく。
.textが空だったら、アラート。 .isEmpty を使う
if hogeField.text!.isEmpty { //アラートの処理 } else { let hoge = Hoge() hoge.title = hogeField.text! }
ナビゲーションコントロールバーの記述例
@IBAction func tapTransitionBtn(_ sender: UIButton) { self.performSegue(withIdentifier: "NextSegue", sender: nil) } //viewWillAppearは、そのviewControllerが読みこまれるたびに実行 override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) //ナビゲーションバーの色 let deepGreen = UIColor(red: 72.0 / 255, green: 140.0 / 255, blue: 141.0 / 255, alpha: 1.0) self.navigationController!.navigationBar.barTintColor = deepGreen self.title = "Main View Controller" //ヘッダーナビのタイトルへの設定 self.navigationController!.navigationBar.titleTextAttributes = [NSAttributedStringKey.foregroundColor: UIColor.white, NSAttributedStringKey.font: UIFont(name: "Helvetica-Bold", size: 20)!] //Navigation Barに配置したボタンの色 self.navigationController!.navigationBar.tintColor = UIColor.white //曇りガラスをオフ self.navigationController!.navigationBar.isTranslucent = false //ナビゲーションバー 右端にnextを入れる self.navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Next", style: UIBarButtonItemStyle.plain, target: self, action: #selector(ViewController.toNextViewController(sender:))) } //nextをタップした時の処理 @objc func toNextViewController(sender: UIBarButtonItem) { self.performSegue(withIdentifier: "NextSegue", sender: nil) }
ナビゲーションコントローラーのヘッダーバーの背景
override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. let deepGreen = UIColor(red: 72.0 / 255, green: 140.0 / 255, blue: 141.0 / 255, alpha: 1.0) self.navigationController!.navigationBar.barTintColor = deepGreen }
ボタンをタップした時のセグエ処理の一例
override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. let button = UIButton() button.addTarget(self, action: #selector(ViewController.didTouchButton(sender:)), for: UIControlEvents.touchUpInside) self.view.addSubview(button) } @objc func didTouchButton(sender: UIButton) { self.performSegue(withIdentifier: "ModalSegue", sender: self) }
labelの底を基準に配置するのは.maxYなどが便利。0だと一番下。
button.center = CGPoint(x: self.view.center.x, y: label.frame.maxY + 30)
文字量によってサイズが可変する
button.sizeToFit()
labelなどを、画面の外に配置する
label.frame.origin = CGPoint(x: self.view.frame.width, y: 200)
labelやbuttonを角まるで正円にする
hogeLabel.layer.cornerRadius = hogeLabel.frame.width / 2 hogeLabel.layer.masksToBounds = true
ボーダーを設定する
//ボーダの幅を指定 hogeImageView.layer.borderWidth = 1 //ボーダーの色を指定 hogeImageView.layer.borderColor = UIColor.white.cgColor
textViewの基本記述例
//テキスト内容 hogeTextView.text = "Go hogeSite !!!\nhttps://okadalabo.com/" //テキストカラー hogeTextView.textColor = UIColor.gray //背景色 hogeTextView.backgroundColor = UIColor(red: 0.5, green: 0.7, blue: 0.3, alpha: 1.0) //フォント hogeTextView.font = UIFont(name: "Helvetica", size: 18) // リンクになり得る全ての要素をリンクにする。 hogeTextView.dataDetectorTypes = UIDataDetectorTypes.all //編集不可 hogeTextView.isEditable = false //パディングの設定 hogeTextView.textContainerInset = UIEdgeInsets(top: 15, left: 10, bottom: 0, right: 0)
textfieldの基本記述例
//テキストの設定 hogeTextField.text = "hello world" //フォントカラー hogeTextField.textColor = UIColor.blue //フォント、フォントサイズ hogeTextField.font = UIFont(name: "Helvetica-Bold", size: 30) //フォントサイズのみ hogeTextField.font = UIFont.systemFont(ofSize: 30) //整列 hogeTextField.textAlignment = NSTextAlignment.center // プレイスホルダの設定 hogeTextField.placeholder = "キーワードで検索" // クリアボタンの設置 hogeTextField.clearButtonMode = UITextFieldViewMode.always //編集モードになったら、入力されているテキストを消去 hogeTextField.clearsOnBeginEditing = true //空欄の状態ではreturnkeyがグレイアウトする。 hogeTextField.enablesReturnKeyAutomatically = true //パスワード入力モード hogeTextField.isSecureTextEntry = true
labelの基本記述例
hogeLabel.text = "Swift\nis\ngreat!!" // \n は改行 hogeLabel.textColor = UIColor.blue hogeLabel.font = UIFont(name: "HiraginoSans-W6", size: 15) hogeLabel.textAlignment = NSTextAlignment.right hogeLabel.numberOfLines = 2 //座標で配置 hogeLabel.frame.origin = CGPoint(x: 130, y: 200) //表示させるテキストとフォントサイズによってlabel自体の大きさを決めるメソッド hogeLabel.sizeToFit()
buttonの基本記述例
hogeButton.setTitle("tap", for: UIControlState.normal) hogeButton.setTitle("no tap", for: UIControlState.disabled) hogeButton.setTitle("tapping", for: UIControlState.highlighted) hogeButton.setTitleColor(UIColor.red, for: UIControlState.highlighted) hogeButton.titleLabel!.font = UIFont(name: "Helvetica-Bold", size: 30)
buttonの基本記述例2
//Buttonの生成 let button = UIButton() //Buttonの位置とサイズの設定 button.frame = CGRect(x: 10, y: 30, width: 80, height: 80) //Buttonの背景画像の設定 button.setBackgroundImage(UIImage(named: "hoge.png"), for: UIControlState.normal) //Buttonの角を丸くする button.layer.cornerRadius = 3.0 //Buttonの背景画像をButtonのサイズで切り取る button.clipsToBounds = true //Buttonをタップ時にtappedButtonという名前のアクションを呼ぶ button.addTarget(self, action: #selector(ViewController.tappedButton(_:)), for: .touchUpInside) //ButtonをScrollViewに配置 myScrollView.addSubview(button) //Buttonをタップした時に呼ばれるメソッド @objc func tappedButton(_ sender: UIButton){ print("Buttonタップ") }