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

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

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

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

Xcode

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

Swift

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

Q&A

1回答

552閲覧

Instagramユーザープロフィール画面のアーキテクチャについて

daicky777

総合スコア16

iOS

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

Xcode

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

Swift

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

0グッド

0クリップ

投稿2019/04/05 01:42

iOSアプリの2019年現在のInstagramのユーザープロフィール画面のアーキテクチャ及びその実装方法についてうかがいたいです。
該当画面は以下になります。
ユーザープロフィール画像例

実装したい事

  • スクロールすると3タブが画面上部に張り付くようにする事。
  • 3タブ以下の画面はそれぞれ別画面として独立している事。
  • 3タブ以下の画面をスクロールすると横のタブの画面にスライドする事

動作を動画で見たい場合は以下のURLから確認できます。
https://drive.google.com/file/d/1k2kQUQAu6tSiEn3wSu74i0BlqyX-7buD/view?usp=sharing

自分が考えた事
以下の画像が自分が考えた設計ですが、このようにcollectionview内にそれぞれ独立したView(またはViewController)を埋め込むことができるようには思えないのですが、他の方法が思いつきませんでした。
設計例

究極スクロールすると横のタブの画面にスライドする機能はいらないのですが、それでも他の二点の機能を満たした上で上記の画面のような実装方法を知っている方がいらっしゃれば是非アドバイス頂きたいです。

よろしくお願い致します。

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

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

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

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

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

guest

回答1

0

動画パッと見で。(アプリは使ったことないです)

全体はTableViewで、

text

1+----------------+ 2| | 3| | 4| Profile | Cell #0-0 5| | 6| | 7+----------------+ 8| 3 Tabs | Section #1 9+----------------+ 10| | 11| | 12| Timeline | Cell #1-0 13| | 14| | 15+----------------+

こんな感じ。

Timelineセルの中身はCollectionView。

投稿2019/04/05 01:57

fuzzball

総合スコア16731

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

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

daicky777

2019/04/07 23:32

ご回答ありがとうございます。 Timelineセルの中身はコレクションビューということですが、例えばタブの一番目を押したあと、二番目を押して、また最後に一番目を押すと、最初に一番目のタブを押した画面の状態が戻っています。 以上の点で3タブを押して表示されるリストはそれぞれ3つ独立して存在し、タブを押すたびにリストの表示、非表示を制御しているかとおもわれますが、それをtablviewと(おそらく3つの)collectionviewを使ってどのように再現するのでしょうか? 宜しくお願い致します。
fuzzball

2019/04/08 00:22

>>最初に一番目のタブを押した画面の状態が戻っています というのは、スクロール位置が一番上になってしまう、ということでしょうか? それなら、タブ切り替え時にスクロール位置を再設定すればいいと思いますけども。
daicky777

2019/04/08 13:53 編集

すいません。 例えがわかりづらかったかもしれません。 3タブのうちの一つのリストを横にスライドすると、隣のタブのリストが表示されます。 このことからtimelineセルに独立した3つのリストがそれぞれ存在しているように見えますが、そのように実装されているのがInstagramの実装のように思われますがいかがでしょうか?
fuzzball

2019/04/09 02:34 編集

動画からは、各タブの縦スクロールが独立しているということは把握できませんでした。 横幅が三画面分のScrollViewを置いて、その中にCollectionViewを3つ並べる、というような感じでしょうか。
daicky777

2019/04/11 20:22

そのScrollViewと外側のcollectionViewの縦方向のスクロールがしっかり連動するかどうかが懸念ですが、とりあえずやってみます! ご回答ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問