質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

89.11%

【iOS】pageSheetモーダルの横幅の変更について

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 176

secondpenguin

score 13

iPad版Apple Musicで再生中の曲が、通常のモーダルビューの半分くらいの横幅で出てくるのですが、これはどのように実装しているのでしょうか

・モーダルビューの横幅を変更する方法がある
・UISplitViewControllerで左側のViewControllerを非表示にする

などを考えたのですが、どちらもうまく実装できませんでした

よろしくお願いいたします![iPad版AppleMusic](6217df5493edeb15af4d5941636308f3.png)

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

+1

他の方もおっしゃっている通り、カスタムでの実装だと思われます。

iPadは頻繁には使わないためMusicの変遷は把握していませんが、以前よりiPhoneのMusicはカスタムで実装されていました。

  • そもそもpageSheet開発のための実験だったか
  • Musicチームが良いものを作ったので汎用化されたか

など詳しいことは分かりませんが。

モーダルビューの横幅を変更する方法がある

についてですが、viewWillLayoutSubviews内でview.boundsなどを変更することにより可能ではありますがお望みの挙動にするのは難しいのではと思います。

  • presentViewControllerを利用するのであれば用途に応じて.overFullScreen, .overCurrentContextを使う
  • presentViewControllerを使わない実装をする

方法があると思いますが、いずれにせよ骨が折れる作業になるのではないでしょうか😅
ひょっとしたら類似の挙動を再現するライブラリが公開されているかもしれません。探してみて見つかればラッキー、見つからなければ自前で実装ですね。。。

あまり答えになっていない長文・駄文となってしまいましたが、お役に立てれば幸いです🙇‍♂️

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/07/03 23:27

    nafuさま
    ご回答ありがとうございます

    たしかに、Apple Musicのよく挙動を見てみると、通常のモーダルが下から出てくるのに対し、Apple Musicのモーダルはタブバーに当たるところに埋め込まれている再生中のトラック情報を表示するビューが拡大するような形で伸びてくるので、カスタムなのだと思います

    カスタムなのではないかというところと、複数実装案をご提案くださり、ありがとうございます

    とりあえずまずはGithubでライブラリを探すところから始めてみたいと思います

    ありがとうございました!

    キャンセル

0

popover系じゃなければ、モーダルの背景を透明にしてその上に必要な大きさのviewを載せているのでは?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/07/03 23:30

    overfullscreenのモーダルで背景半透明のビューコントローラーを用意しつつ、カスタムで幅を決めたビューを乗せる方法になりますかね……

    たしかに、それなら実装できるかもしれません……!ありがとうございます☺︎

    キャンセル

  • 2020/07/03 23:55 編集

    今更だけど、みてみたら、これモーダル遷移とかじゃなくて。extraViewでやるのが一番簡単ですね。addSubviewするとき、半透明の全画面背景をかましてあげて。

    キャンセル

  • 2020/07/04 00:18 編集

    画面遷移でやるなら、全画面でのモーダル遷移で、背景透明、必要な大きさのviewを載せるだけ、
    これはカスタムトランジッションである必要はありません。

    曲名とサムネイルのアニメーションも再現したいならカスタムトランジッションがいいですかね。
    https://teratail.com/questions/262343
    https://teratail.com/questions/262708
    念のため

    キャンセル

  • 2020/07/09 01:26

    tyobigorouさま
    気づくのが遅くなってすみません……!extraViewというのがあるのですね!知らなかったです

    これは便利ですね!Storyboardメインで開発していて、複数の画面を一つのViewControllerに載せるとなるとどうしても躊躇してしまったのですが、これならすっきり描けそうです

    ありがとうございます!

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 89.11%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る