【发布时间】:2019-09-18 12:25:14
【问题描述】:
出于某些原因,在我的 SwiftUI 应用程序中,我需要使用带有 CGAffineTransform 和 rotationAngle 属性的 transformEffect 修饰符。但结果是这样的:
如何将旋转角度的锚点设置为箭头图像的中心?我在文档中看到我们可以使用CGPoint吗?
我的代码:
import SwiftUI
import CoreLocation
struct Arrow: View {
var locationManager = CLLocationManager()
@ObservedObject var heading: LocationManager = LocationManager()
private var animationArrow: Animation {
Animation
.easeInOut(duration: 0.2)
}
var body: some View {
VStack {
Image("arrow")
.resizable()
.aspectRatio(contentMode: .fit)
.frame(width: 300, height: 300)
.overlay(RoundedRectangle(cornerRadius: 0)
.stroke(Color.white, lineWidth: 2))
.animation(animationArrow)
.transformEffect(
CGAffineTransform(rotationAngle: CGFloat(-heading.heading.degreesToRadians))
.translatedBy(x: 0, y: 0)
)
Text(String(heading.heading.degreesToRadians))
.font(.system(size: 30))
.fontWeight(.light)
}
}
}
【问题讨论】:
-
您是否尝试执行
.rotationEffect(Angle(radians: yourAngle))(默认情况下具有中心锚点)并将任何其他transformEffects 与CGAffineTransform翻译链接?
标签: swift swiftui cgaffinetransform