我想将背景向左移动,就像我的角色走路并显示行走次数一样,但它不能同时做到这一点。这个方法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)
使用自动布局时不应直接更改框架,因为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];
}