ios中的图像翻译
我不是一个很好的程序员,所以如果这是一个愚蠢的问题,请原谅我! 我只是在学习ios中的图像转换 我想在按钮点击事件中将图像从一个位置转换到另一个位置 这是代码ios中的图像翻译,ios,objective-c,Ios,Objective C,我不是一个很好的程序员,所以如果这是一个愚蠢的问题,请原谅我! 我只是在学习ios中的图像转换 我想在按钮点击事件中将图像从一个位置转换到另一个位置 这是代码 - (IBAction)showinfobybutton:(id)sender { CGFloat v1 = imageview.center.x; CGFloat v2 = imageview.center.y; CGAffineTransform trans = CGAffineTransformTransla
- (IBAction)showinfobybutton:(id)sender {
CGFloat v1 = imageview.center.x;
CGFloat v2 = imageview.center.y;
CGAffineTransform trans = CGAffineTransformTranslate(imageview.transform, v1, v2);
imageview.transform = trans;
}
代码有什么问题。它只在y方向上平移,不在x方向上平移。不管你为v1函数设置了多少值,都不要在意。知道发生了什么事吗。。。。。
我累坏了
感谢您提供的任何帮助关于
CGAffineTransform
的问题,有几点想法:
init
方法中还是在viewDidLoad
中执行此操作?如果是这样,那可能在视图创建过程中为时过早,因为imageview
的许多UIView
相关属性(例如center
)此时不可靠。查看并确保您获得的v1
和v2
的非零值。如果要查看帧坐标等,可能需要将其延迟到viewdide出现
或更高版本imageview
的中心设置v1
和v2
很奇怪。您正在移动中心
,移动量为中心
。通常,您会看到如下内容:
CGFloat dx = 100.0;
CGFloat dy = 200.0;
[UIView animateWithDuration:1.0
animations:^{
CGAffineTransform trans = CGAffineTransformTranslate(self.someView.transform, dx, dy);
imageview.transform = trans;
}];
顺便说一下,我制作了(a)动画,因为这通常是更好的用户体验;(b)当进行这样的诊断时,我更容易看到它从什么变化到什么变化。如果您不想要动画,显然不要使用animateWithDuration
code
顺便说一下,如果要移动
ui视图
控件,如果不使用自动布局,最常用的方法是使用animationWithDuration
更改中心
或帧
,例如:
[UIView animateWithDuration:1.0
animations:^{
imageview.center = CGPointMake(newX, newY); // set newX and newY to whatever you want
}];
如果您使用的是autolayout,则过程会稍微复杂一些。autolayout中的一种技术是以编程方式更改约束,但这可能超出了这个问题的范围。关于您关于
CGAffineTransform
的问题,有几点想法:
init
方法中还是在viewDidLoad
中执行此操作?如果是这样,那可能在视图创建过程中为时过早,因为imageview
的许多UIView
相关属性(例如center
)此时不可靠。查看并确保您获得的v1
和v2
的非零值。如果要查看帧坐标等,可能需要将其延迟到viewdide出现
或更高版本imageview
的中心设置v1
和v2
很奇怪。您正在移动中心
,移动量为中心
。通常,您会看到如下内容:
CGFloat dx = 100.0;
CGFloat dy = 200.0;
[UIView animateWithDuration:1.0
animations:^{
CGAffineTransform trans = CGAffineTransformTranslate(self.someView.transform, dx, dy);
imageview.transform = trans;
}];
顺便说一下,我制作了(a)动画,因为这通常是更好的用户体验;(b)当进行这样的诊断时,我更容易看到它从什么变化到什么变化。如果您不想要动画,显然不要使用animateWithDuration
code
顺便说一下,如果要移动
ui视图
控件,如果不使用自动布局,最常用的方法是使用animationWithDuration
更改中心
或帧
,例如:
[UIView animateWithDuration:1.0
animations:^{
imageview.center = CGPointMake(newX, newY); // set newX and newY to whatever you want
}];
如果您使用的是autolayout,则过程会稍微复杂一些。autolayout中的一种技术是以编程方式更改约束,但这可能超出了这个问题的范围。刚才我在我的代码中发现,如果我将v1的值设置为非常高的值,比如465465746574547,那么它会在x方向上进行小的随机移动。刚才我在代码中发现,如果我将v1的值设置为非常高的值,比如465465746574547,那么它会在x方向上进行小的随机移动