フルスクリーンではない画面作成Part1〜画面設置編〜

登録画面のようなフルスクリーンではないViewの設置方法について紹介します！！
##[Step1]NavigationControllerを設置する
カーソルをViewController上部の四角枠一番左の丸いマークの部分に合わせてツールバー（上に表示のある部分（Xcode,File,Edit,View,））のEditor→EmedIn→NavigationControllerを選択するとNavigationControllerが表示される
##[Step2]ViewControllerにボタンを配置する
右上「+」のツールボックス中からButtonを選択してNavigationBarに設置をする

こんな感じでできてるはず！！
![スクリーンショット 2020-08-09 13.57.51（2）.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679508/3112d401-8860-59ba-7101-48d226e7b140.png)

##[Step3]RegistViewを登録しよう
Buttonのときと同様に「+」の中からViewを選択してFirestResponderとExsitの間にセットする
するとViewControllerの上部に新しいViewが作成できたと思う
大きさを合わせる場合にはサイドバーを開いてモノサシのアイコンをタップしWidthとHeightを合わせることで調節ができる
※このときにRegistViewのBackgroundColorをうす緑に設定している

こんな感じになるはず！！
<img width="859" alt="スクリーンショット 2020-08-09 14.21.18.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679508/94311ae3-ebdc-fce7-d37d-a9894e55c69d.png">

##[Step4]ViewとButtonを紐付けしよう
ViewController.swiftとMain.soryboardを一つの画面で開く
カーソルをButtonに合わせた状態でControlキーを押しながらコードの上に落とす名前はshowRegistViewとしてActionで設定をする
同様に付け加えたRegistViewをコードと紐付ける

```swift:ViewController.swift
import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }

    @IBOutlet var registView: UIView!
    @IBAction func showRegistView(_ sender: Any) {
    }
    
}
```

以下のようなコードを書き加える！！（コメントアウトしているところが追加した部分）
主にViewとボタンの設定を行っている

```swift
//    追加したい場所.addSubview(追加したいもの)
      self.view.addSubview(registView)
```
上のようなコードを書くと追加できる！！

```swift:ViewController.swift
import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        
        // Do any additional setup after loading the view.
        setRegistVIew()
    }
    
//    Viewを追加するメソッドsetRegistView
    func setRegistVIew(){
//        全画面の部分から横と縦の大きさを持ってくる
        let screenFrameX = self.view.frame.width/2
        let screenFrameY = self.view.frame.width/2
//        RegistViewの大きさを設定する（今回は縦横の比率を4:3に設定している）
        let viewX = 300
        let viewY = viewX*4/3
//        RegistViewの位置と大きさをセットする　CGRect.init(x:X軸に対して表示するポジション, y: Y軸に対して表示するポジション, width: 横の大きさ, height: 縦の大きさ)
        registView.frame = CGRect.init(x: Int(screenFrameX)-viewX/2, y: Int(screenFrameY), width: viewX, height: viewY)
        
    }

    @IBOutlet var registView: UIView!
    @IBAction func showRegistView(_ sender: Any) {
//        Viewを追加する
        self.view.addSubview(registView)
    }
    
}
```
<img width="300" alt="Simulator Screen Shot - iPhone 11 - 2020-08-09 at 14.54.18.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679508/b0e9c215-81e5-0a40-065a-6e2d1a496f31.png">
こんな感じにSimulationできれば完成！！

##応用しよう
表示したならRegistViewを消したいですよね！！
消し方はこんな感じでできます！！RegistViewの中にButton(名前はsaveButton)を設置します。
今回はOutletとActionの両方をセットすることがポイントです！！
※Buttonには制約（RegistView内で位置を決定させる）を持たせないと表示されない！！

Viewを消すためには以下のようなコードを書くと消せます！！
ついでにボタンを丸角にしています！！

```swift
//消したいView.removeFromSuperview()
        registView.removeFromSuperview()
```
上のようなコードを書くと消去できる！！

```swift:ViewController.swift
import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        setRegistVIew()
        setSaveButton()
    }
    
    func setRegistVIew(){
        let screenFrameX = self.view.frame.width/2
        let screenFrameY = self.view.frame.width/2
        let viewX = 300
        let viewY = viewX*4/3
        registView.frame = CGRect.init(x: Int(screenFrameX)-viewX/2, y: Int(screenFrameY), width: viewX, height: viewY)
    }

    func setSaveButton(){
        saveButton.layer.cornerRadius = 10
        saveButton.tintColor = .white
        saveButton.backgroundColor = .red
    }

    @IBOutlet var registView: UIView!
//OutletでUIButtonを追加
    @IBOutlet weak var saveButton: UIButton!
    
    @IBAction func showRegistView(_ sender: Any) {
        self.view.addSubview(registView)
    }
//ActionでUIButtonを追加
    @IBAction func saveButton(_ sender: Any) {
//Viewを消す
        registView.removeFromSuperview()
    }
    
    
}
```

<img width="300" alt="Simulator Screen Shot - iPhone 11 - 2020-08-09 at 15.50.44.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/679508/8ed3c855-ce05-ab9b-f321-bbbcec9b8028.png">
こんな感じに表示できていれば完成！！