2015-07-06 2 views
1

У меня есть UIButton в положении x = 0.0. Теперь, когда я нажимаю эту кнопку, кнопка смещается и переходит в положение при x = 131.0. Теперь, когда я снова нажимаю, он должен вернуться к позиции x = 0.0. Но его не придет. Он остается в положении x = 131,0.Рамка кнопки не меняется

Это код, который я написал

- (IBAction)showMenuViewButton:(id)sender { 

_horizontalConstraintsOfColorViewToMainView.constant = 0.0; 
_buttonOfColorViewHoriozontalLeadingConstraints.constant = 131.0; 

counter=counter+1; 

if (counter%2 !=0) { 
    [UIView animateWithDuration:0.4 
        animations:^ 
    { 
     _menuView.hidden = NO; 
     _menuView.frame = CGRectMake(0.0, _menuView.frame.origin.y, _menuView.frame.size.width, _menuView.frame.size.height); 
     _showMenuViewButton.frame = CGRectMake(_showMenuViewButton.frame.origin.x+_menuView.frame.size.width+_showMenuViewButton.frame.size.width,_showMenuViewButton.frame.origin.y, _showMenuViewButton.frame.size.width, _showMenuViewButton.frame.size.width); 


    }]; 
} 
else{ 

    [UIView animateWithDuration:0.4 
        animations:^ 
    { 
     _menuView.hidden = NO; 

     _menuView.frame = CGRectMake(-102.0, _menuView.frame.origin.y, _menuView.frame.size.width, _menuView.frame.size.height); 
     _showMenuViewButton.frame = CGRectMake(0.0,_showMenuViewButton.frame.origin.y,  _showMenuViewButton.frame.size.width, _showMenuViewButton.frame.size.width); 

    }]; 

} 
} 
+0

Вы создали IBOutlets для ограничений компоновки? Если да, то как вы удаляете/добавляете их при настройке координаты x? – Gandalf

+0

Где я удаляю/добавляю ограничения при настройке координаты x. @Gandalf – iPeter

+0

На самом деле я спросил вас, что, поскольку я вижу некоторые константы ограничений, которые изменяются в вашем коде. Если вы не используете ограничение, то почему они там? Должен ли я предположить, что вы полагаетесь на настройку кадра, а не на ограничения? – Gandalf

ответ

1

Здесь я изменил рамку кнопки для анимации не изменить любой contarint

- (IBAction)clickButton:(id)sender { 
     if (!isChangedPlace) {   
      isChangedPlace = true; 
      [UIView animateWithDuration:1.0 
             animations:^{ 

btn.frame = CGRectMake(btn.frame.origin.x, btn.frame.origin.y+100, btn.frame.size.width, btn.frame.size[self.height);view layoutIfNeeded]; 
             }]; 
     } 
     else 
     { 
      isChangedPlace = false; 
      [UIView animateWithDuration:1.0 
          animations:^{ 
btn.frame = CGRectMake(btn.frame.origin.x, btn.frame.origin.y-100, btn.frame.size[self.width,view btn.frame.size.height);layoutIfNeeded]; 
          }]; 
     } 

    } 

Здесь у меня есть кнопки изменения Y ограничение анимировать его Я установил ограничение Y с помощью IBOutlet и изменил это значение следующим образом.

- (IBAction)clickButton:(id)sender { 
     if (!isChangedPlace) { 

      isChangedPlace = true; 
      buttonYPointConstraint.constant += 50; 

     } 
     else 
     { 
      isChangedPlace = false; 
      buttonYPointConstraint.constant -= 50; 

     } 
[UIView animateWithDuration:1.0 animations:^{ 
    [self.view layoutIfNeeded]; 
             }]; 
    } 

Я надеюсь, что это вам поможет!

+0

Позиция еще не меняется @Pravin – iPeter

+0

Кнопка идет 131 и не возвращается вправо? –

+0

Точно @Pravin – iPeter