Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SwiftUI:放大以CG点为中心放大的手势_Swift_Swiftui_Gesture_Magnification - Fatal编程技术网

SwiftUI:放大以CG点为中心放大的手势

SwiftUI:放大以CG点为中心放大的手势,swift,swiftui,gesture,magnification,Swift,Swiftui,Gesture,Magnification,我有一段代码,允许你使用放大手势放大和缩小带有渐变的圆。如果我把手指放在屏幕中央并缩放,这是很好的,但是如果我把手指放在屏幕的边缘,做放大手势,我希望它放大我手指之间的点。现在,它仍然以屏幕中心作为放大中心进行放大 我如何修改我的代码以允许用户将重心放在手指放置位置之间的CG点上 struct ContentView:View{ @GestureState变量放大状态=放大状态.inactive @状态变量VIEWAMPLIZESTATE=CGFloat(1.0) 变量放大比例:CGFloat{

我有一段代码,允许你使用放大手势放大和缩小带有渐变的圆。如果我把手指放在屏幕中央并缩放,这是很好的,但是如果我把手指放在屏幕的边缘,做放大手势,我希望它放大我手指之间的点。现在,它仍然以屏幕中心作为放大中心进行放大

我如何修改我的代码以允许用户将重心放在手指放置位置之间的CG点上

struct ContentView:View{
@GestureState变量放大状态=放大状态.inactive
@状态变量VIEWAMPLIZESTATE=CGFloat(1.0)
变量放大比例:CGFloat{
返回视图放大状态*放大状态.scale
}
var body:一些观点{
让渐变=渐变(颜色:[红色、.黄色、.绿色、.蓝色、.紫色、.红色、.黄色、.绿色、.蓝色、.紫色、.红色、.黄色、.绿色、.蓝色、.紫色])
让放大手势=放大手势()
.正在更新($state){中的值、状态、事务
状态=.缩放(比例:值)
}.onEnded{中的值
self.viewState*=值
}
圈()
.填充(
径向梯度(梯度:梯度,中心:中心,星形:50,端半径:2000)
)
.框架(宽:2000,高:2000)
.scaleEffect(放大比例)
.手势(放大手势)
}
}
枚举状态{
案例无效
案例缩放(比例:CGFloat)
风险等级:CGFloat{
切换自身{
案例。缩放(按比例缩放):
回报率
违约:
返回CGFloat(1.0)
}
}
}