macos - SwiftUI:调整图像视图大小时尝试同步矩形视图和 NSImage 视图的移动
问题描述
被这个 macOS 问题困扰了几天。我有一个位于图像视图顶部的小矩形。当我手动调整图像视图的大小时,矩形与图像保持同步,这是所需的效果。如果我移动矩形然后调整图像大小,则矩形不再与图像同步移动。我已经尝试将矩形视图作为叠加层,通过计算图像大小的变化来使用偏移量(这似乎过于复杂)。下面的代码应该可以证明这个问题。您需要添加您选择的照片。谢谢!
struct ImageView: View {
@State private var location: CGPoint = .zero
var imageView: some View {
Image(nsImage: NSImage(named: "Your photo/image goes here")!)
.resizable()
.aspectRatio(contentMode: .fit)
.padding(.all)
.scaledToFit()
}
var rectView: some View {
Rectangle()
.fill(Color.orange)
.scaledToFit()
.position(self.location)
.frame(width: 15, height: 15)
.gesture(DragGesture()
.onChanged{ value in
self.location = value.location
}
)
}
var body: some View {
ZStack() {
self.imageView
self.rectView
}
}
}
解决方案
推荐阅读
- apache-spark - 如何使用过滤器通过 spark 从 Greenplum 读取数据
- google-apps-script - 通过单元格引用更改电子表格名称 - Google 表格/应用程序脚本
- sql - 在 Azure 数据工厂的复制活动中每月自动更改日期,以将数据从 SAP HANA 复制到 Azure SQLDB
- php - 无法访问发布消息中的 html 表单数据 (PHP)
- javascript - useEffect 缺少依赖项:'user'
- python - Discord.py 如何从不和谐消息中读取 int 并将其作为变量发送到嵌入中
- python - 如何根据匹配列旋转数据框
- c++ - constexpr 构造函数不被称为隐式类型转换的 constexpr
- azure-ad-b2c - 收到的身份验证响应没有预期的 accessToken
- laravel - Laravel 显示“FPDF 错误:尚未添加页面”