mal*_*low 5 xcode ios swift swiftui
我试图找到之前问过的类似问题,但失败了。
我有一个简单的列表视图。我正在使用 ForEach 显示某个列表项的 10 次迭代以创建布局,然后再将实际数据添加到此列表中。我有最后 2 行无法正确呈现的问题。但有时是另一排。我也在 iPhone 上测试过,有时是一排,有时是另一排。带有列表的视图的代码是这样的:
import SwiftUI
struct LocksView: View {
@State private var locksPaid = 0
var body: some View {
NavigationView {
List {
DateView()
.listRowInsets(EdgeInsets())
Picker(selection: $locksPaid, label: Text("Picker")) {
Text("All").tag(0)
Text("Not paid (2)").tag(1)
}
.pickerStyle(SegmentedPickerStyle())
.padding(10)
ForEach(0 ..< 10) {item in
LocksItemView()
}
}
.navigationBarTitle(Text("Locks"))
.navigationBarItems(trailing: EditButton())
}
}
}
Run Code Online (Sandbox Code Playgroud)
列表项的代码是这样的:
import SwiftUI
struct LocksItemView: View {
@State private var paid : Bool = false
var body: some View {
HStack {
Text("L15")
.font(.title)
.fontWeight(.heavy)
.multilineTextAlignment(.center)
.frame(width: 80)
VStack(alignment: .leading) {
Text("nickname")
.fontWeight(.bold)
Text("category")
Text("4 000 THB")
.fontWeight(.bold)
}
Spacer()
Toggle(isOn: self.$paid) {
Text("Paid")
}
.labelsHidden()
}
}
}
Run Code Online (Sandbox Code Playgroud)
为什么我的列表中的某些行中的切换已损坏?为什么它会向左侧移动?
我首先在模拟器上尝试了你的代码,也遇到了同样的问题。但后来我想起来,13.2 iOS 存在一些问题,并尝试在我的设备(iPhone 7、iOS 13.1.1)上运行它,一切正常!我认为这是 13.2 iOS 中的问题,而不是列表中的问题。有示例,我如何更改代码来演示一切正常:
import SwiftUI
struct LocksView: View {
@State private var locksPaid = 0
var body: some View {
NavigationView {
List {
Picker(selection: $locksPaid, label: Text("Picker")) {
Text("All").tag(0)
Text("Not paid (2)").tag(1)
}
.pickerStyle(SegmentedPickerStyle())
.padding(10)
ForEach(0 ..< 200) {item in
LocksItemView(number: item)
}
}
.navigationBarTitle(Text("Locks"))
.navigationBarItems(trailing: EditButton())
}
}
}
struct LocksItemView: View {
@State private var paid : Bool = false
var number: Int
var body: some View {
HStack {
Text("L\(self.number)")
.font(.title)
.fontWeight(.heavy)
.multilineTextAlignment(.center)
.frame(width: 80)
VStack(alignment: .leading) {
Text("nickname")
.fontWeight(.bold)
Text("category")
Text("4 000 THB")
.fontWeight(.bold)
}
Spacer()
Toggle(isOn: self.$paid) {
Text("Paid")
}
.labelsHidden()
}
}
}
Run Code Online (Sandbox Code Playgroud)
在我的手机上,结果是:
所以13.2版本有bug,希望Apple能全部修复
| 归档时间: |
|
| 查看次数: |
3000 次 |
| 最近记录: |