我很难找到正确的解决方案来将内部ImageaVStack与 对齐.leading。我已经尝试并得到了这些结果,但是有没有更有效的方法而不是Spacer()在 中添加两个HStack?
struct ContentView: View {
var body: some View {
ZStack {
ScrollView {
VStack (alignment: .leading, spacing: 10) {
Text("Title ")
HStack {
Spacer()
Image(systemName:"star.fill")
.resizable()
.frame(width: 20, height: 20, alignment: .center)
Spacer()
}
Divider()
}
}
}
.padding(.all)
}
}
Run Code Online (Sandbox Code Playgroud)
我无法找出正确的方法来找到要放置的 x 和 y 坐标以及Image我overlay正在制作的进度视图的正确位置。我希望最终结果看起来像屏幕截图,只是不确定我会使用什么公式。至少可以说,我的数学能力很差。
GeometryReader { geometry in
ZStack {
Circle()
.trim(from: 0.0, to: 0.5)
.stroke(Color.blue, style: StrokeStyle(lineWidth: 5))
.rotationEffect(.degrees(-180))
.frame(width: geometry.size.width)
.opacity(0.5)
.overlay(Circle()
.trim(from: 0.0, to: CGFloat(configuration.fractionCompleted ?? 0) / 2)
.stroke(Color.blue, style: StrokeStyle(lineWidth: 5))
.rotationEffect(.degrees(-180))
.frame(width: geometry.size.width).overlay(
Circle()
.frame(width: 20, height: 20)
.position(x: 0, y: 0)
}
}
Run Code Online (Sandbox Code Playgroud)
我正在使用一个 API,它可以根据项目返回一个值Bool或一个值。Int我不熟悉如何处理数据中一个值的不同类型Codable。额定键可以是对象或布尔值,只是不确定如何正确处理它而不出现错误typeMismatch。这是我第一次使用 API 遇到这种情况。
{"id":550,"favorite":false,"rated":{"value":9.0},"watchlist":false}\nRun Code Online (Sandbox Code Playgroud)\n{\xe2\x80\x9cid":405,"favorite":false,"rated":false,"watchlist":false}\nRun Code Online (Sandbox Code Playgroud)\nstruct AccountState: Codable {\n let id: Int?\n let favorite: Bool?\n let watchlist: Bool?\n let rated: Rated?\n}\n\nstruct Rated : Codable {\n let value : Int? // <-- Bool or Int\n}\nRun Code Online (Sandbox Code Playgroud)\n 我正在尝试创建一个List并允许一次仅选择一个项目。我将如何循环执行此操作ForEach?我可以很好地选择多个项目,但最终目标是在List. 这甚至可能不是处理我正在尝试的事情的正确方法。
struct ContentView: View {
var body: some View {
NavigationView {
List((1 ..< 4).indices, id: \.self) { index in
CheckmarkView(index: index)
.padding(.all, 3)
}
.listStyle(PlainListStyle())
.navigationBarTitleDisplayMode(.inline)
//.environment(\.editMode, .constant(.active))
}
}
}
struct CheckmarkView: View {
let index: Int
@State var check: Bool = false
var body: some View {
Button(action: {
check.toggle()
}) {
HStack {
Image("Image-\(index)")
.resizable()
.frame(width: 70, height: 70)
.cornerRadius(13.5)
Text("Example-\(index)")
Spacer()
if check {
Image(systemName: "checkmark")
.resizable()
.frame(width: …Run Code Online (Sandbox Code Playgroud)