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

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

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

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

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

Q&A

解決済

1回答

1584閲覧

XLPagerTabStripのStoryboadの設定

maruco

総合スコア5

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

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

0グッド

0クリップ

投稿2020/09/29 05:48

編集2020/09/29 05:51

前提・実現したいこと

ライブラリ "XLPagerTabStrip"を使って、上タブの実装をしたいです。

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

Storyboadにおいて初期設定で必要なOutletsに、containerViewの選択が表示されません。

試したこと

① ViewControllerからcontrolキーを押しながらScrollViewを選択し、
Outlets選択でcontainerViewが表示されるか。

② 該当ViewControllerを右クリックし、ReferecingOutltesでcontainerViewを表示されるか。
①②

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

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

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

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

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

TsukubaDepot

2020/09/29 08:36

おそらく、どこかのページを参考に実装されたのだと思いますが、そのURLを教えていただけないでしょうか。 ちなみに、Xcodeのあるバージョンからは、ScrollView の制約のかけ方がネット上にある大抵の記事と異なっているので、その考慮も必要です。
TsukubaDepot

2020/09/29 10:33

次回のご質問からは、ぜひ参考にされた記事もご質問本文にご記入いただければと思います。 ちなみに、XLPagerTabStripは実質的な最終メンテナンスから2年以上経っていますし、Qiitaの記事も2018年だったりするので、そのままだと適用できない部分もあります(特に、ScrollViewあたりの扱いが変わっているので、そこで失敗する可能性も高い)。 ですが、一応できる方法はわかったので、あとで時間をとって回答しますので、もう少々お待ちください。
maruco

2020/09/29 12:21 編集

お忙しい中早々のアドバイスありがとうございます! 次回からは参考記事も質問本文に記入いたします!! そして、GitHubでXLPagerTabStripの最終メンテナンス時期を確認していませんでした。。今後はライブラリの導入時にメンテナンス時期を確認するクセもつけます。(こちらのアドバイスもありがとうございました!) 上タブの実装にあたり、当初Parchmentというライブラリの使用を試していましたが、私には実装が難しく断念し、XLPagerTabStripを選んだ次第です。 「一応できる方法はわかったので、あとで時間をとって回答しますので、もう少々お待ちください。」 ↑ご親切なお気持ち本当にありがとうございます!!
guest

回答1

0

ベストアンサー

を参照されているようなので、この記事をベースに説明します。

まず、

の節まではご理解いただいた上で、必要なクラスは作成されていると仮定します。

次に、

ですが、4つのView Controller を配置することも問題ないと仮定します。

次に、「上タブ」として実装したいということなので、「上タブ」に相当する CollectionView を配置します。

CollectionView を黒い View Controller のSafe Area内に配置し、制約(Constraint)は

  • 上下左右: 0
  • 高さ(height): 0
  • 上左右: 0
  • 高さ(height): 40

に設定します(2020/10/01設定の説明を修正しました)。

イメージ説明

ここで黒い背景の View Controller の Custom Class を「Main View Controller」に設定しておきます。

イメージ説明

クラス名に「M」と打ち込んだだけで、残りのクラス名は自動補完されます。もし、自動保管さないのであれば、それはカスタムクラスを作っていないことが原因なので、

を参考にカスタムクラスを作るようにしてください。

Collection View にカスタムクラスを設定します。クラス名に「B』と入れれば、「ButtonBarView」と自動補完されるはずです。

イメージ説明

また、Collection View Cell にもカスタムクラスを設定します。クラス名に「B」といれれば、「ButtonBarViewCell」と自動補完されるはずです。

イメージ説明

次に、ScrollView を配置します。

イメージ説明

制約は

  • 上下左右: すべて 0

に設定します。

すると、制約エラーが出ますが、ここではあえて無視します(詳しい説明は長くなるしうまく説明できないので省略しますが、レイアウトガイドなどをきちんと設定しないと ScrollView の制約が求められないことがその理由です)。

イメージ説明

では、この制約エラーを解除したいと思います。
ScrollView を選択したまま、右側の「Show the size inspector」を選択し、

イメージ説明

ここの「Content Layout Guide」に入っているチェックを外します。
すると、制約に関するエラーを解除することができるようになります。

イメージ説明

次に、ScrollView の関連付けです。

Qiitaの記事通り、ScrollView で右クリックし、

イメージ説明

Main View Controller までドラッグしたあと、次のようなメニューが出るので

イメージ説明

Container View を選択します。

次に、ScrollView のカスタムクラスを設定します。
ScrollView を選択し、右側ペインを使ってカスタムクラスを設定します。

イメージ説明

ここも Qiita 記事通りです。カスタムクラス名に「B」だけ入れれば、あとは「Button Bar View」と自動保管されます。もしされなければ、Podfile が正しく入っていない可能性が高いかと思います(あるいは、一度 Build ⌘ + B を行なってみてください)。

次に、Button Bar View で右クリックし、View Controller にドラッグします。

イメージ説明

先ほどと同じくポップアップメニューが出ますので、「Button Bar View」を選択します。

イメージ説明

あとは Build, Run するとこんな感じで画面遷移をさせることが可能になるはずです。

イメージ説明

投稿2020/09/29 20:22

編集2020/10/01 12:09
TsukubaDepot

総合スコア5086

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

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

maruco

2020/09/30 16:45

こんなに丁寧に教えて頂き、そしてサンプルファイルまで、、ありがとうございます!! 途中、ライブラリが正しくインストールされてないことも判明し、教えて頂いたアドバイスをもとに再インストールもし、無事に実装することができました! この度も本当にありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問