2015-04-17 5 views
1

Я хочу переместить фон влево, как мой персонаж идет и показывает число ходьбе, но он не может этого сделать одновременно. этот метод leftfootButton может установить только текст этикеткиПочему я не могу перемещать изображение и устанавливать текст в ярлыке одновременно

- (IBAction)leftfootButton:(id)sender { 
    _bgGround.center = CGPointMake(_bgGround.center.x -50, _bgGround.center.y); 
    i = i+1; 
    self.show.text = [NSString stringWithFormat:@"%d",i]; 
} 

Если я закомментировать код, который задает текст из то он может двигаться фон

- (IBAction)rightfootButton:(id)sender { 
    _bgGround.center = CGPointMake(_bgGround.center.x - 50, _bgGround.center.y); 
    i = i+1; 
    //self.show.text = [NSString stringWithFormat:@"%d",i]; 
} 

что я должен делать?

+0

Используете ли вы авто макет? –

+0

yes Я использую автомасштабирование – sFz

+0

Вы не должны изменять рамки непосредственно при использовании автоматического макета, потому что метод layoutSubviews возвращает кадры в их предыдущую позицию. –

ответ

0

Вы не должны менять рамки непосредственно при использовании автоматического макета, потому что метод layoutSubviews возвращает кадры в их предыдущее положение. Этот метод во многих случаях называется системой. Вы можете переопределить его, чтобы напрямую задать прямоугольники рамки ваших подзонов. Но я рекомендую вам изменить ограничения вашего фонового представления. Даже если вы не задавали ограничений для своих просмотров, они были добавлены автоматически.

+0

Я создаю новый проект с автоматическим макетом, который он все еще не работает. – sFz

+0

Попробуйте это: включите автоматическую компоновку, добавьте ведущее ограничение к вашему представлению, создайте выход для этого ограничения и уменьшите значение его константы, чтобы переместить свое представление влево. –

0

Когда вы используете ограничение компоновки, вы никогда не должны менять кадр, вы должны попытаться изменить ограничение, например.

Создайте IBOutlet для обозначения x для вида, как показано ниже, убедитесь, что он правильно подключен.

@property (weak, nonatomic) IBOutlet NSLayoutConstraint *xContraint; 

Затем в действии

- (IBAction)leftfootButton:(id)sender { 
    self.xContraint.constant -= 50; 
    i = i + 1; 
    self.show.text = [NSString stringWithFormat:@"%d", i]; 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^