SwiftUI计算UIimage的角坐标
SwiftUI calculate coordinate of the corner of UIimage
我正在寻找视图中图像显示的 4 个角的正确坐标 x、y。
我写了这段代码..来计算第一个左上角坐标:
但这是错误的.. 结果在 x 和 y 上应该是 0 一些值。
我的代码:
struct ContentView: View {
@StateObject var am = AppManager()
@State var spikoPic = #imageLiteral(resourceName: "spiko-16.jpeg")
@State var centerOFimage = CGSize(width: 0, height: 0)
var body: some View {
GeometryReader { proxy in
ZStack {
Image(uiImage: spikoPic)
.resizable()
.scaledToFit()
.position(x: proxy.size.width/2, y: proxy.size.height/2)
}.edgesIgnoringSafeArea(.all)
.onAppear(perform: {
centerOFimage = CGSize(width: proxy.size.width/2, height: proxy.size.height/2)
let toplx = centerOFimage.width - (spikoPic.size.width/2) //??
let toply = centerOFimage.height - (spikoPic.size.height/2) //??
print(toplx)
print(toply)
})
}
}
}
你可以通过图像背景精确计算,在全局坐标中得到矩形,如
这是主要部分:
Image(uiImage: spikoPic)
.resizable()
.scaledToFit()
.background(GeometryReader {
Color.clear.preference(key: ViewRectKey.self,
value: [[=10=].frame(in: .global)])
})
.onPreferenceChange(ViewRectKey.self) { rects in
print(rects.first ?? .zero)
// calculate here !!
}
测试 Xcode 13.3 / iOS 15.4
我正在寻找视图中图像显示的 4 个角的正确坐标 x、y。
我写了这段代码..来计算第一个左上角坐标: 但这是错误的.. 结果在 x 和 y 上应该是 0 一些值。
我的代码:
struct ContentView: View {
@StateObject var am = AppManager()
@State var spikoPic = #imageLiteral(resourceName: "spiko-16.jpeg")
@State var centerOFimage = CGSize(width: 0, height: 0)
var body: some View {
GeometryReader { proxy in
ZStack {
Image(uiImage: spikoPic)
.resizable()
.scaledToFit()
.position(x: proxy.size.width/2, y: proxy.size.height/2)
}.edgesIgnoringSafeArea(.all)
.onAppear(perform: {
centerOFimage = CGSize(width: proxy.size.width/2, height: proxy.size.height/2)
let toplx = centerOFimage.width - (spikoPic.size.width/2) //??
let toply = centerOFimage.height - (spikoPic.size.height/2) //??
print(toplx)
print(toply)
})
}
}
}
你可以通过图像背景精确计算,在全局坐标中得到矩形,如
这是主要部分:
Image(uiImage: spikoPic)
.resizable()
.scaledToFit()
.background(GeometryReader {
Color.clear.preference(key: ViewRectKey.self,
value: [[=10=].frame(in: .global)])
})
.onPreferenceChange(ViewRectKey.self) { rects in
print(rects.first ?? .zero)
// calculate here !!
}
测试 Xcode 13.3 / iOS 15.4