更改图像后,如何将UIButton保留在同一位置?

时间:2014-01-22 03:57:13

标签: ios uibutton

我有一个UIButton,可以在点击后更改屏幕上的位置。然后,用户单击另一个按钮以更改按钮的图像,我希望它保留在新位置。目前我的代码在更改图像后恢复到原始位置。这是代码:

首先移动Button(newLocation是UIImageView的位置):

movableButton.center = [newLocation center];

然后单击其他按钮更改按钮图像:

[movableButton setImage:[UIImage imageNamed: @"differentImage.png"] forState:UIControlStateNormal];

3 个答案:

答案 0 :(得分:1)

我不明白为什么会动起来。我只是测试了它,它确实移动了。我需要调查它为什么会移动并且会回复你。

但这会解决它移动的问题。

CGPoint currentLoc = self.imageButton.center;
[self.imageButton setImage:[UIImage imageNamed:@"face"] forState:UIControlStateNormal];
self.imageButton.center = currentLoc;

答案 1 :(得分:0)

好了,现在我得到了你的问题,你能做的就是在第二个按钮的动作中启动一个计数器:

-(void)secondButtonClick
{
 static int counter = 1;
   if(counter %2  == 0) 
   {
     firstButton.center =cgpoint a;  // a gain some point where you wan't to place the center
    }
 if(counter %2 != 0)
    {
      [firstButton setBackgroundImage:[UIImage imageNamed:@"logout.png"] forState:UIControlStateNormal];
     }

counter ++;

}

您可以修改if条件是否要在更改图像之前更改位置.....还可以更改中心alsolike这个

a.x =a.x+10;
a.y =a.y +10;
myButton.center = a;

答案 2 :(得分:0)

试试这个

-(IBAction) movingButtonClicked
{
      [movingButton setFrame:CGRectMake(movingButton.frame.origin.x+10,movingButton.frame.origin.y+20,50,50)];
}

-(IBAction) changeImage
{
     [movingButton setImage:[UIImage imageNamed: @"differentImage.png"] forState:UIControlStateNormal];
}