0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Swiftのハーフモーダル

Last updated at Posted at 2021-10-31

swiftハーフモーダル

ハーフモーダル実装したことがなかったのでしてみた。とても簡単でした。
スクリーンショット 2021-10-31 15.01.17.png

ハーフモーダルを発火させるボタンと遷移先の画面をそれぞれ用意

//遷移前画面 prepareをoverrideしてあげる。sheet.detentsを複数指定することによってハーフモーダルと通常モーダルをどちらも使える。
 override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        let next = segue.destination
        if let sheet = next.sheetPresentationController {
            sheet.detents = [.medium(),.large()]
        }
    }

//遷移先画面 IBActionで下記のように設定。 ボタンを押すと、ハーフだったらラージへ、ラージだったらメディアムになるように設定する
animateChangesにすることによってうまくアニメーションしてうごいていくれる
@IBAction func change(_ sender: Any) {
        if let sheet = self.sheetPresentationController {
            if sheet.selectedDetentIdentifier == .medium {
            sheet.animateChanges {
                sheet.selectedDetentIdentifier = .large
            }
            } else {
                sheet.animateChanges {
                    sheet.selectedDetentIdentifier = .medium
                }
            }
        }
    }

とても簡単に実装できました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?