ios - SwiftUI Charts BarMark 将注释与图表顶部对齐

标签 ios swift swiftui healthkit

我正在尝试 Swifts Charts。我试图将注释与图表顶部对齐,但我无法做到这一点。

我想要实现的目标是这样的: enter image description here

但是这是通过图表顶部的 HStack 完成的,并且它没有 100% 对齐。所以我改用注释修饰符。结果是这样的:

enter image description here

但正如您所看到的,这些值直接位于栏的顶部,这不是我正在寻找的结果。

用于注释的代码在这里:

.annotation {
   Text("\(Int(item.price))")
     .font(.system(size: 8))
     .rotationEffect(.degrees(270))
     .padding()
 }

我尝试添加一个VStack,在下面放入Text和一个Spacer,但这没有帮助。我也尝试过:

.frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .top)

但这也没有帮助。

希望你们能在这里帮助我:) 提前致谢。

最佳答案

您可以使用.annotation(position: .overlay,alignment: .bottom),它可以在从标记底部开始的标记上提供注释叠加。

enter image description here

这是一个例子:

struct ContentView: View {

    let data: [(Int, Int)] = {
        (0...20).map { ($0, Int.random(in: 0...500)) }
    }()

    @State private var selectedX = 6
    
    var body: some View {
        
        VStack {
            Chart {
                ForEach(data.indices, id: \.self) { i in
                    let (x,y) = data[i]
                    BarMark(
                        x: .value("x", x),
                        y: .value("y", y)
                    )
                    .annotation(position: .overlay, alignment: .bottom, spacing: 0) {
                        Text("\(y)")
                            .font(.system(size: 8))
                            .frame(width: 570 , alignment: .trailing)
                            .rotationEffect(.degrees(-90))
                    }
                }
            }
            .chartXScale(domain: 0...20)
            .chartYScale(domain: 0...550)
            .chartYAxis(.hidden)
            .frame(height: 300)
         
        }
        .padding()
    }
}

关于ios - SwiftUI Charts BarMark 将注释与图表顶部对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74890360/

相关文章:

swift - 以编程方式更改状态时可以动画 NSSwitch 吗?

swift - void 函数中返回 true 时出现意外的非 void 返回值

ios - 如何在: class NetworkManager: ObservableObject内引用@Published var

swift - (如何)在 SwiftUI 中可以在 TextField 中编辑(长度单位)测量值?

iphone - 在 for 循环中使用不同的 url 多次发送 NSURLConnection 请求

ios - 应该在自定义 UIView 中添加 UILabel 在 drawRect 或 initWithFrame/自定义设置方法中

ios - 纠正 UINavigationController 方向

带有 .indices() 的 SwiftUI ForEach 在 onDelete 之后不会更新

ios - Objective-C 方法' Controller :didChangeObject:atIndexPath:forChangeType:newIndexPath

ios - 使用扩展创建 socket 在 UITableViewCell 中表现得很奇怪