Как я могу сохранить UIButton в том же месте после изменения изображения?

У меня есть UIButton который может менять местоположение на экране после нажатия. Затем пользователь нажимает другую кнопку, чтобы изменить изображение кнопки, и я хочу, чтобы она оставалась на своем новом месте. В настоящее время с моим кодом он возвращается к исходному положению после изменения изображения. Вот код:

Сначала переместите Button (newLocation - это местоположение UIImageView):

movableButton.center = [newLocation center];

Затем измените изображение кнопки, нажав другую кнопку:

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

3 ответа

Решение

Я не понимаю, почему это движется. Я только что проверил это, и оно движется. Мне нужно выяснить, почему он движется и вернется к вам.

Но это решит проблему его перемещения.

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

Хорошо, теперь у меня есть ваш вопрос, что вы можете сделать, это запустить счетчик в действии 2-й кнопки:

-(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 ++;

}

Вы можете изменить, если условие, хотите ли вы изменить положение перед изменением изображения..... Также вы можете изменить центр также

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

Попробуй это

-(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];
}
Другие вопросы по тегам