作ったもの
こんなかんじで、ViewControllerをそのまま小さくワイプ表示するやつです。
実際に動かしてみたい方は、appetize.ioで動かせます。こちら。
是非使ってください!
プルリク大歓迎。
使い方
使える関数
PictureInPicture.shared.present(with: viewController) // 表示する
PictureInPicture.shared.dismiss() // 閉じる
PictureInPicture.shared.makeSmaller() // 小さくする
PictureInPicture.shared.makeLarger() // 大きくする
PictureInPicture.shared.presentedViewController // 表示中のViewController
設定
// 影の設定
let shadowConfig = PictureInPicture.ShadowConfig(color: .black, offset: .zero, radius: 10, opacity: 1)
PictureInPicture.configure(movable: true, // 小さくしたやつを動かせるかどうか
scale: 0.3, // 小さくしたときのスケール
margin: 10, // 小さくした時の上下左右のマージン
defaultEdge: .left, // 小さくした時に左右どちらに行くか
shadowConfig: shadowConfig)
Notification
Name | いつ飛ぶか |
---|---|
PictureInPictureMadeSmaller | 小さくなったとき |
PictureInPictureMadeLarger | 大きくなったとき |
PictureInPictureDidBeginMakingSmaller | 小さくし始めたとき |
PictureInPictureDidBeginMakingLarger | 大きくし始めたとき |
PictureInPictureMoved | 動かしたとき |
PictureInPictureDismissed | 閉じたとき |
UserInfo
PictureInPictureMovedだけUserInfo内にデータがあります。
Key | 型 | 説明 |
---|---|---|
PictureInPictureOldCornerUserInfoKey | PictureInPicture.Corner | 移動元の角 |
PictureInPictureNewCornerUserInfoKey | PictureInPicture.Corner | 移動先の角 |
その他定数
定数名 | 説明 |
---|---|
UIWindowLevelPictureInPicture | Picture in Pictureを表示しているWindowLevel。 現状はUIWindowLevelDefault + 1 |
インストール
Podfile
pod "PictureInPicture"
Cartfile
github "malt03/PictureInPicture"