为什么我无法同时移动图像并在标签中设置文字

时间:2015-04-17 13:02:07

标签: ios objective-c cgpoint

我想将背景向左移动,就像我的角色走路并显示行走次数一样,但它不能同时做到这一点。这个方法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];
}

我该怎么办?

2 个答案:

答案 0 :(得分:0)

使用自动布局时不应直接更改框架,因为layoutSubviews方法会将框架返回到先前的位置。在许多情况下,系统会调用此方法。您可以覆盖它以直接设置子视图的框架矩形。但我建议您更改背景视图的约束。即使您没有为视图设置约束,也会自动添加它们。

答案 1 :(得分:0)

当您使用布局约束时,您永远不应该更改框架,您应该尝试更改约束,例如

为下面的视图创建一个用于x约束的IBOutlet,确保它已正确连接。

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

然后在你的行动中

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