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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

Q&A

解決済

1回答

978閲覧

FloatingPanelの設置場所を変えたい

tactaco

総合スコア15

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

0グッド

0クリップ

投稿2022/06/08 05:51

前提

今回FloatingPanelを使いたいと思い導入をしてみました。
普通にそのまま導入をすると画面の一番下に配置されるのですが、
それを自分の希望の場所に設置をしてそこから広げられるようにしたいです。
色々検索をしてみたのですが見つけられなかったのでご存じの方がいらっしゃいましたらお知恵をお貸し下さい。
何卒宜しくお願い致します。

実現したいこと

イメージ説明
上記赤いUIView内に設置をしたい
白い部分には広告のバナーを設置する予定です。

発生している問題・エラーメッセージ

広げた後は移動するが設置位置は変わらない

該当のソースコード

override func viewDidLoad() {
super.viewDidLoad()

let contentVC = browserView2()
fpc = FloatingPanelController(delegate: self)
fpc.layout = MyFloatingPanelLayout()
fpc.set(contentViewController: contentVC)
追加をしてみたもの
fpc.surfaceView.containerMargins = .init(top: 20.0, left: 16.0, bottom: 100, right: 16.0)

fpc.addPanel(toParent: self)
}

swift

試したこと

公式?の説明を一通り目をとしてそれらしい
fpc.surfaceView.containerMargins = .init(top: 20.0, left: 16.0, bottom: 100, right: 16.0)
を入れてみたところ、Maxまで広げると希望の赤いUIViewの位置に移動をしたのですが、
開始位置はやはり白い部分の一番下からとなっていました。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

MyFloatingPanelLayoutクラスの中でanchorsプロパティを定義しているのかなと思います。
.tipの時のFloatingPanelLayoutAnchorのabsoluteInsetパラメーターを調整することで
一番下にある時の位置が調整できそうですがどうでしょうか。

fpc.surfaceView.containerMarginsはfloating panelの余白を指定するものみたいですので、一旦削除した上で確認した方が良いかもしれません

*参考リンクです
https://github.com/SCENEE/FloatingPanel#change-the-initial-layout
FloatingPanelState.full (パネル状態とは、パネル全体が表示されている状態を指します。)
FloatingPanelState.half (パネル状態とは、パネルの半分が表示されている状態です。)
FloatingPanelState.tip (パネル状態とは、パネルの先端が表示されていることを示します。)


********** 追記です。 **********

質問の意図を正しく理解できておらず、ごめんなさい・・

広告のy座標的な上の座標からFloatingPanelを表示する、という考えはこのパッケージの思想とちょっと違うのかなと思いました。
FloatingPanelは画面の一番下から開始する前提で考えた方が良いのかなと思いました。
その前提の上で、実現するためには、前面背面を考慮してレイアウトすることかなと思いました。

GitHubのExamplesが参考になるかもしれません。

https://github.com/scenee/FloatingPanel/tree/master/Examples/Stocks

このExamplesでは
fpc.addPanel(toParent: self, at: view.subviews.firstIndex(of: bottomToolView) ?? -1 , animated: false)
の形でFloatingPanelの前面にビューを配置しているように見えました。


********** 2つ目の追記です。 **********

コメントありがとうございます。

FloatingPanel内でWebkitを使ってブラウザとしても使うと言う事は出来ないのでしょうか?
普通の推移であれば問題無いのですが、FloatingPanelを使うとaaa.load(bbb)でエラーがが出てしまうのです。

具体的なエラーがわからないですが、
WebKit自体は使うことができるように見えました。
ExamplesのSamplesは参考になりますでしょうか。

Examples/Samples
https://github.com/scenee/FloatingPanel/blob/07ae3245862d235bb5d994cfb8ab01960ef1d5b6/Examples/Samples/Sources/ContentViewControllers/MultiPanelController.swift

投稿2022/06/11 07:01

編集2022/06/12 00:55
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tactaco

2022/06/11 09:48

回答ありがとうございます! お教えいただいた.tipのabsoluteInsetのパラメーターを変えてみたのですが、位置が変わるのでは無く、高さが変化するだけで開始位置はやはり白いViewの一番下からでした。 やはりedgeの箇所が.bottomになる限りダメなのでしょうか?
tactaco

2022/06/11 13:15

いえ、私の質問の書き方が分かりにくかったんだと思います。すいません。 やはり私の考えてる使い方では難しいのですね。それがわかっただけでも質問をした甲斐がありました。 ただご提案頂いた方法で試したとこ、FloatingPanelの上にViewを出す事は出来ました。ありがとうございます! もしお教え頂けたら幸いなのですが、FloatingPanel内でWebkitを使ってブラウザとしても使うと言う事は出来ないのでしょうか? 普通の推移であれば問題無いのですが、FloatingPanelを使うとaaa.load(bbb)でエラーがが出てしまうのです。 もしかしたらFloatingPanelの用途を勘違いしていたのかとも思い始めました・・・。 上記は表題と違う内容なので違反や対応不可であれば大丈夫です。 関係なくベストアンサーとさせて頂きます!
tactaco

2022/06/12 16:29

重ね重ね本当にありがとうございます! 拝見させて頂き、Webkitが関連している箇所を抜粋してブラウザーを用意しているViewController側に同じ様に入力してみたら何も表示されませんでした。 やはりもう少しFloatingPanelのことを知らないとダメみたいですね。 今回は色々とご教示くださり本当にありがとうございました。 また何か出た時は何卒宜しくお願い致します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問