我有一個關于 swiftui 中的視圖的問題。
我創建了一個檔案 CircleView,它在中間顯示了一個圓圈和一個文本。此外,我在 ContentView 和 DetailView 中創建了一個串列以獲取詳細資訊。我現在在串列和詳細視圖中使用創建的圓圈。不幸的是,圓的大小是在 CircleView 中定義的,我不知道如何單獨更改它,以便它在串列中顯示很小,并在詳細資訊視圖中使用全寬。那么如何單獨更改視圖的大小呢?
這是我的意思的圖片(第一個串列,第二個詳細資訊視圖):

這是我的代碼
圓視圖:
struct CircleView: View {
var body: some View {
ZStack{
Circle()
.fill(Color.blue)
.frame(width: 250, height: 250)
Text("VIEW")
.frame(width: 100, height: 100)
.font(.largeTitle)
.foregroundColor(.white)
}
}
}
內容視圖:
struct ContentView: View {
var body: some View {
NavigationView {
List{
NavigationLink(destination: DetailsView()) {
HStack{
Text("Hello")
Spacer()
CircleView()
}
}.navigationTitle("Home")
}
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
詳情查看:
struct DetailsView: View {
var body: some View {
VStack{
Text("Hello, World!")
.padding(10)
CircleView()
}
}
}
uj5u.com熱心網友回復:
您應該從視圖中洗掉設定的框架并在使用視圖時應用它。
您編輯的代碼:
struct Sample: View {
var body: some View {
NavigationView {
List{
NavigationLink(destination: DetailsView()) {
HStack{
Text("Hello")
Spacer()
CircleView()
.frame(width: 100 , height: 100) // <-- Update frame here
}
}.navigationTitle("Home")
}
}
}
}
struct CircleView: View {
var body: some View {
ZStack{
Circle()
.fill(Color.blue)
Text("VIEW")
.font(.largeTitle)
.foregroundColor(.white)
}
}
}
struct Sample_Previews: PreviewProvider {
static var previews: some View {
Sample()
}
}
struct DetailsView: View {
var body: some View {
VStack{
Text("Hello, World!")
.padding(10)
CircleView().padding()
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/358229.html
