Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.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
Iphone 尝试更改按钮时出现问题';s动画块中的帧。_Iphone_Objective C_Animation_Uikit_Uibutton - Fatal编程技术网

Iphone 尝试更改按钮时出现问题';s动画块中的帧。

Iphone 尝试更改按钮时出现问题';s动画块中的帧。,iphone,objective-c,animation,uikit,uibutton,Iphone,Objective C,Animation,Uikit,Uibutton,我创建了一个带有自定义图像的按钮,并将其显示在一个框架中。 现在,我尝试在动画块内更改按钮的帧。 不幸的是,它似乎不起作用-框架没有如预期的那样改变 我编写了以下代码: UIButton *movingButton = [[UIButton buttonWithType:UIButtonTypeCustom] retain]; UIImage *image = [UIImage imageNamed:@"A_normal_image.png"]; [movingButton setImage:i

我创建了一个带有自定义图像的按钮,并将其显示在一个框架中。 现在,我尝试在动画块内更改按钮的帧。 不幸的是,它似乎不起作用-框架没有如预期的那样改变

我编写了以下代码:

UIButton *movingButton = [[UIButton buttonWithType:UIButtonTypeCustom] retain];
UIImage *image = [UIImage imageNamed:@"A_normal_image.png"];
[movingButton setImage:image forState:UIControlStateNormal];
movingButton.frame = CGRectMake(160, 240, 0, 0);
[movingButton addTarget:self action:@selector(moveButton:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:movingButton];

CGRect newFrame CGRectMake(20, 120, 44, 88);
[UIView animateWithDuration:0.5 animations:^{ movingButton.frame = newFrame; }];
[movingButton release];
我错过什么了吗?那我该怎么做呢

提前感谢,,
Sagiftw

您应该使用浮点数而不是整数:

movingButton.frame = CGRectMake(160, 240, 0, 0);
致:


您应该使用浮点数而不是整数:

movingButton.frame = CGRectMake(160, 240, 0, 0);
致:


动画中发生了什么?我更改了按钮的帧,因此其原点和大小应该已更改。发生的事情是,只有原点在改变,但图像的大小是新帧的大小。我的意思是:CGRectMake(160,240,44,88)变成:CGRectMake(20,120,44,88)。帧是否应该从CGRectMake(160,240,0,0)更改为CGRectMake(20,120,44,88),而不是您在上面发布的内容?如果您在上面发布的内容实际上是正确的,那么帧的大小将在动画之前设置,对吗?然后动画将原点从(160240)更改为(20120)。让我知道这两种情况中的哪一种。动画中发生了什么?我更改了按钮的帧,因此其原点和大小应该已更改。发生的事情是,只有原点在改变,但图像的大小是新帧的大小。我的意思是:CGRectMake(160,240,44,88)变成:CGRectMake(20,120,44,88)。帧是否应该从CGRectMake(160,240,0,0)更改为CGRectMake(20,120,44,88),而不是您在上面发布的内容?如果您在上面发布的内容实际上是正确的,那么帧的大小将在动画之前设置,对吗?然后动画将原点从(160240)更改为(20120)。让我知道这两种情况中的哪一种。我知道,但是这个方法也接受int。使用float不会改变任何东西,这段代码也不会工作,帧也不会改变。我知道,但是这个方法也接受int。使用浮点数不会改变任何东西,并且此代码仍然无法工作,帧也不会改变。