Ios 启用自动布局的非自动布局代码不会破坏约束

Ios 启用自动布局的非自动布局代码不会破坏约束,ios,autolayout,Ios,Autolayout,我刚刚实现了一个非Autolayout代码,在启用Autolayout的视图上使用UIPangestureRecognitor,并在组件上添加了Autolayout约束。我所说的非自动布局代码是指我没有更新或更改代码中的任何约束 请参阅下面的代码 您可以看到,我没有在代码中使用任何约束,也没有更改任何常量。上面的代码工作非常好,不会产生任何自动布局警告。怎么做 我的问题是为什么它没有在运行时给我任何自动布局警告,因为我在不更新自动布局约束的情况下更改操纵杆的位置 我很困惑。有人能帮忙吗 谢谢。我

我刚刚实现了一个非Autolayout代码,在启用Autolayout的视图上使用UIPangestureRecognitor,并在组件上添加了Autolayout约束。我所说的非自动布局代码是指我没有更新或更改代码中的任何约束

请参阅下面的代码

您可以看到,我没有在代码中使用任何约束,也没有更改任何常量。上面的代码工作非常好,不会产生任何自动布局警告。怎么做

我的问题是为什么它没有在运行时给我任何自动布局警告,因为我在不更新自动布局约束的情况下更改操纵杆的位置

我很困惑。有人能帮忙吗


谢谢。

我不认为更改帧会产生错误。。。只有当您有冲突的约束时,系统才会向您显示错误。。。我认为代码是有效的,因为它不断地改变帧。。如果您只尝试更改框架一次,然后让它继续,我想它会回到原始位置。@Blacky我感到困惑,因为在设计时,如果我对任何组件设置任何约束并更改框架,它会生成约束警告,但在运行时它不会。同样,在改变帧后,它也不会像你们所说的那个样回到原来的位置。并没有必要感到困惑,在IB中,它只是一个警告,在运行时,屏幕将与你们在IB上看到的不同。然而,当你们在控制台中看到警告时,它不是警告,而是错误!因为约束中存在冲突,但系统试图修复它们。我希望我是清楚的。。。
- (IBAction)panJoystick:(UIPanGestureRecognizer*)gesture {
    CGPoint translation = [gesture translationInView:self.controlsView];

    if (gesture.state == UIGestureRecognizerStateBegan || gesture.state == UIGestureRecognizerStateEnded) {

        lastCentre=self.joystickView.center;

    }else{
        self.joystickView.center=CGPointMake(lastCentre.x+translation.x, lastCentre.y+ translation.y);
    }

}