Ios 更改UIImageView的变换
我正在尝试在我的应用程序中设置一个功能,当我点击视图时,该功能可以更改我的Ios 更改UIImageView的变换,ios,swift,uiimageview,transform,Ios,Swift,Uiimageview,Transform,我正在尝试在我的应用程序中设置一个功能,当我点击视图时,该功能可以更改我的UIImageView(它们的位置和比例)的变换。每个图像应移动到其他图像的相同位置,以提供滚动效果。例如,如果我有图像“a”、“b”和“c”,则图像“a”应变换为“b”的位置和比例,图像“b”应变换为“c”的位置和比例,最后图像“c”应变换为“a”的位置和比例 我已经设法让它在第一次点击时按预期工作。但之后的每一个水龙头都会失去位置和比例 代码如下: @objc private func tapHandler(){
UIImageView
(它们的位置和比例)的变换。每个图像应移动到其他图像的相同位置,以提供滚动效果。例如,如果我有图像“a”、“b”和“c”,则图像“a”应变换为“b”的位置和比例,图像“b”应变换为“c”的位置和比例,最后图像“c”应变换为“a”的位置和比例
我已经设法让它在第一次点击时按预期工作。但之后的每一个水龙头都会失去位置和比例
代码如下:
@objc private func tapHandler(){
for index in 0...2{
var transform = CGAffineTransform()
if (circlesIV[index].tag==0){
transform = transforms[0].translatedBy(x: +100.0, y: 0.0)
transform = transform.scaledBy(x: 0.5, y: 0.5)
}
else if (circlesIV[index].tag==1){
transform = transforms[1].translatedBy(x: -200.0, y: 0.0)
}
else {
transform = transforms[2].translatedBy(x: +100.0, y: 0.0)
transform = transform.scaledBy(x: 2, y: 2)
}
circlesIV[index].transform = transform
}
var tempTag = circlesIV[0].tag
circlesIV[0].tag = circlesIV[1].tag
circlesIV[1].tag = circlesIV[2].tag
circlesIV[2].tag = tempTag
}
transforms是一个包含UIImageView
原始变换的数组,circlesIV是UIImageView
的数组(共有3个图像)
编辑:我认为问题与用于设置图像的自动约束有关
circlesIV[0].centerXAnchor.constraint(equalTo: topHalf.centerXAnchor).isActive = true
circlesIV[1].centerXAnchor.constraint(equalTo: topHalf.centerXAnchor, constant: +100).isActive = true
circlesIV[2].centerXAnchor.constraint(equalTo: topHalf.centerXAnchor, constant: -100).isActive = true
for index in 0...2{
circlesIV[index].translatesAutoresizingMaskIntoConstraints = false
circlesIV[index].centerYAnchor.constraint(equalTo: topHalf.centerYAnchor).isActive = true
if(index==0){
circlesIV[index].widthAnchor.constraint(equalToConstant: 150).isActive = true
circlesIV[index].heightAnchor.constraint(equalToConstant: 150).isActive = true
} else {
circlesIV[index].widthAnchor.constraint(equalToConstant: 75).isActive = true
circlesIV[index].heightAnchor.constraint(equalToConstant: 75).isActive = true
}
}
变换
数组的意义是什么?图像视图的“原始变换”是否与标识不同?我想我已经解决了问题,但不确定如何解决。我使用自动约束设置图像变换。我将把这部分代码添加到这个部分。你不认为使用纯自动布局比转换更好吗?现在你正在使用这两种方法。我的想法是,我正在尝试设置图像的动画,以改变轻触手势的位置。我只是使用autolayout来放置图像,然后我想能够在点击时改变它们的位置和比例。那么在第二次和第三次点击时会发生什么呢?通过查看您的代码,第二次点击将被翻译200,第三次点击将被翻译300。。。