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タップ")
}



