

全体は、UITableViewで、「ツイート」 「ツイートと返信」などはSection、  
その下は、UIContainerViewでTableViewを管理しているのだと予想していますが、  
どのようにして、UITableViewの中のTableViewのスクロールを干渉しないように実現させているのでしょうか？

[![Twitter](https://i.stack.imgur.com/ybsJw.png)](https://i.stack.imgur.com/ybsJw.png)


CC BY-SA 4.0
2018-09-30T09:00:13.590
48848
2018-10-11T16:47:03.103
25991
question
swift ios xcode twitter
TwitterのiOSアプリのプロフィール画面の実装


サクッとつくってみました

[![Twitter Like
UI](https://i.stack.imgur.com/Gz2D4.gif)](https://i.stack.imgur.com/Gz2D4.gif)  
前提として、Twitterの中がどうなってるのかはわかりません。  
世界的なアプリはビックリするような実装してたりするので。

似たようなUIをどう作るかですが、私が考えた流れを書いてみます。

・同じScroll方向の入れ子はあまり現実的ではありません（経験上）、  
特に２つでスクロール量をコンバートするのは本当に危険です（非常に難しい）  
というわけで縦のスクロールは恐らく１つです  
・４つのViewはTableViewだと思います、エンドレスでスクロールできますから  
・4つのTableViewは横ScrollViewで管理されていると思います  
PageViewControllerも考えられますが、PageViewControllerの場合は、Viewを遷移したときに読み込みが走ります、Twitterは先に読込されています  
（スマニューなんかと比べてみてください、あちらはPageViewControllerだと思います）  
・ヘッダーは4つのTableViewに影響して動いています。  
つまりどのViewにも属していなくて、self.Viewの下に存在しています（ここが罠ですね）  
・ヘッダーはTableViewのcontentOffsetに応じて動きます  
ヘッダーのTopConstraintを、scrollViewDidScrollから動かしてあげれば割と簡単です  
・TableViewの上の方はヘッダーに隠れてしまうため、contentInsetで上を開けてやります

分かってしまうと、意外とトリッキーなことしてなさそうですねこれ

ソースコードを置いておきます  
<https://github.com/osanaikoutarou/TwitterLikeUI>

ちなみに、雑に作ってるのでTableViewをスクロールしたあとで横に切り替えるとヘッダーの位置がおかしくなります  
本家を触ってみると、結構細かな仕様が隠れてそうです（4つのスクロール位置の取り扱い）


CC BY-SA 4.0
2018-10-11T14:50:24.387
49203
2018-10-11T16:47:03.103
2018-10-11T16:47:03.103
30312
30312
48848
answer