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

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

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

Q&A

0回答

1150閲覧

Swift 5 GeometryReaderの使い方/ 複数のViewの表示の仕方を教えて頂きたいです。

tako7

総合スコア7

0グッド

0クリップ

投稿2020/06/16 14:18

解決したいこと

SwiftのViewで他のViewが見えなくなってしまうことを避けたい。

現状

チャットアプリのチュートリアルをやっています。
途中まではできているのですが、GeometryReaderが出てきたところから分からなくなっています。
問題としては、GeometryReader内のViewによって元々あったViewが上に押し上げられ見えなくなってしまいます。
下記コード内のTopView()がMainViewによって見えなくなってしまいます。

参考の画像も添付します。

やりたい完成画面
イイメージ説明説明(d97e5a22c27950b244abc4b950ad8255.png)

現状
イメージ説明

MainViewを入れる前
イメージ説明

Swift

1// 2// ContentView.swift 3// chatAppSwift 4// 5// Created by tanakatanaka on 2020/06/14. 6// Copyright © 2020 tanakatanaka All rights reserved. 7// 8 9import SwiftUI 10 11struct ContentView: View { 12 var body: some View { 13 TabView{ 14 Home().tabItem{ 15 16 Image(systemName: "message.fill").font(.title) 17 18 } 19 20 Text("Person").tabItem{ 21 22 Image(systemName: "person.fill").font(.title) 23 24 } 25 }.edgesIgnoringSafeArea(.top) 26 .accentColor(Color("bg")) 27 } 28} 29 30struct ContentView_Previews: PreviewProvider { 31 static var previews: some View { 32 ContentView() 33 } 34} 35 36struct Home : View { 37 var body : some View{ 38 39 ZStack{ 40 41 Color("bg").edgesIgnoringSafeArea(.top) 42 VStack{ 43 TopView() 44 45 46 47 } 48 49 } 50} 51} 52 53struct TopView : View { 54 var body : some View{ 55 VStack{ 56 HStack(spacing: 15){ 57 Text("Chats").fontWeight(.heavy).font(.system(size:23)) 58 59 Spacer() 60 61 Button(action: { 62 63 }){ 64 Image(systemName: "magnifyingglass").resizable().frame(width: 20, height: 20) 65 } 66 67 Button(action: { 68 69 }){ 70 Image("menu").resizable().frame(width: 20, height: 20) 71 } 72 73 } 74 .foregroundColor(.white) 75 .padding() 76 77 GeometryReader{_ in 78 MainView() 79 } 80 } 81 82 } 83 } 84 85struct MainView : View{ 86 var body : some View{ 87 88 List(0..<15){_ in 89 90 Text("Temp") 91 92 } 93 } 94} 95

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問