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

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

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

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

Swift

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

Q&A

解決済

1回答

118閲覧

Swift ScrollViewで縦と横どちらにもスクロールさせたい

wasataro

総合スコア1

Xcode

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

Swift

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

0グッド

0クリップ

投稿2024/04/15 11:57

編集2024/04/15 12:57

実現したいこと

点検表のテンプレートを作り、その上にToggleなどで⚪︎や斜線を引いたり、TextFileを使って点検時のコメントを記載して点検結果を記載した点検表を完成させ
完成した点検表をPDFなど印刷できる状態にして端末に保存することを目的にしています。
現在どのように実装させるか学習しながらテストを繰り返している状態です。

発生している問題・分からないこと

ある程度テンプレートを作成した段階で思っているよりサイズが小さいことに気づきできればもう少し大きいサイズでテンプレートを作りたいと思ったのでサイズを大きくしたところ、表示されない領域ができてしまいました。
ScrollViewを使って上下、又は左右にスクロールさせることはできるのですが、どちらかしかできず上下左右に自由に移動できる方法がないか探しています。

該当のソースコード

import SwiftUI import UIKit struct ContentView: View { @State var isShowBView = false @State var kokyakuMei = "" @State var septictankType = "" var body: some View { ScrollView { HStack { ZStack { Rectangle() .stroke(.black) .frame(width: 800, height: 800) VStack { Text("入力された顧客名: \(kokyakuMei)") .padding() Text("入力された浄化槽型: \(septictankType)") Button { isShowBView = true } label: { ZStack { Rectangle() .stroke(style: StrokeStyle()) .frame(width: 300, height: 50) Text("顧客名入力画面を表示") .font(.system(size: 30)) .frame(width: 300, height: 50) } } } } .frame(maxWidth: .infinity) } } .frame(maxHeight: .infinity) .sheet(isPresented: $isShowBView) { BView(isShowBView: $isShowBView, kokyakuMei: $kokyakuMei, septictankType: $septictankType) } } } #Preview { ContentView() } //以下画面B
import SwiftUI struct BView: View { @Binding var isShowBView: Bool @Binding var kokyakuMei: String @Binding var septictankType: String var body: some View { ZStack { Color(.orange) .edgesIgnoringSafeArea(.all) VStack { Text("顧客名") TextField("顧客名を入力", text: $kokyakuMei) Text("型式") TextField("型式を入力", text: $septictankType) Button { isShowBView = false } label: { Text("閉じる") .font(.title) .padding() .background(.green) .foregroundColor(.white) .cornerRadius(10) } } } } }

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

チャットGPTに聞いてみた方法を試してみてもどちらか片方にしか動かず、行き詰まってしまいこうしてお知恵をいただきたく質問した次第です。

改善点を教えていただければ幸いです。

補足

XcodeやMac OSのバージョンは全て最新です

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

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

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

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

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

guest

回答1

0

自己解決

import SwiftUI

struct ContentView: View {
var body: some View {
ScrollView(.horizontal) { // 外側のScrollViewは横方向にスクロール
HStack {
ScrollView { // 内側のScrollViewは縦方向にスクロール
VStack {
Image(systemName: "globe")
.imageScale(.large)
.foregroundColor(.blue)
Text("Hello, world!")
Rectangle()
.stroke(Color.black)
.frame(width: 3000, height: 5000) // 仮のサイズ
Image(systemName: "globe")
}
.padding()
}
}
}
}
}

#Preview {
ContentView()
}

投稿2024/04/15 22:28

wasataro

総合スコア1

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問