Swift-UI按钮:动画按钮穿过边缘

Swift-UI按钮:动画按钮穿过边缘,swift,xcode,animation,Swift,Xcode,Animation,我的ViewController中有一个UIButton。单击此按钮时,此按钮将移动到4个调整位置问题是,当我在iphone 5s模拟器中运行项目时,UIButton移动到边缘。 此外,调整后的位置不能正常工作 let size : CGSize = CGSize(width: 100.0, height: 100.0); var intStep = 0; override func viewDidLoad() { super.viewDidLoad(

我的ViewController中有一个UIButton。单击此按钮时,此按钮将移动到4个调整位置问题是,当我在iphone 5s模拟器中运行项目时,UIButton移动到边缘。

此外,调整后的位置不能正常工作

    let size : CGSize = CGSize(width: 100.0, height: 100.0);
    var intStep = 0;


    override func viewDidLoad() {
        super.viewDidLoad()

        self.movable_Button.frame.size = size;


        self.changePosition();


    }


        UIView.animate(withDuration: 1) {



            self.changePosition();
        }

    }

    func changePosition() {

        switch self.intStep {
        case 0 :
            self.movable_Button.frame.origin = CGPoint(x: 10.0, y: 10.0);

        case 1 :

            self.movable_Button.frame.origin = CGPoint(x: 280, y: 10)
        case 2 :
            self.movable_Button.frame.origin = CGPoint(x: 280.0, y: 300.0);

        case 3 :
            self.movable_Button.frame.origin = CGPoint(x: 10.0, y: 300.0);
        default:
            self.movable_Button.frame.origin = CGPoint(x: 10.0, y: 10.0);
        }

        self.intStep += 1;

        if self.intStep > 3
        {
            self.intStep = 0;
        }

    }

}

你到底想在这里干什么? 似乎您正在移动按钮的
x
值,使其超出iPhone 5s的屏幕限制

我建议你换一些箱子,使它可以调节。 建议的更改可能是:

    case 1 :
    let isMovable1 = (self.movable_Button.frame.origin.x + 280 + 100) < UIScreen.main.bounds.width
        self.movable_Button.frame.origin = CGPoint(x: isMovable1 ? 280 : UIScreen.main.bounds.width - 100, y: 10)
    case 2 :
    let isMovable2 = (self.movable_Button.frame.origin.x + 280 + 100) < UIScreen.main.bounds.width
        self.movable_Button.frame.origin = CGPoint(x: isMovable2 ? 280 : UIScreen.main.bounds.width - 100, y: 10)
案例1:
设isMovable1=(self.movable_Button.frame.origin.x+280+100)
分享一个屏幕截图plz@mehran debug。“UIButton移动到边缘”:你的意思是在更大的手机上,它不是吗?您可以设置
CGPoint(x:280.0,y:300.0),这是一个有效点吗?那按钮会看得见吗?它有“320”的宽度,你的按钮有100的宽度。。。它应该越过边缘…我添加了一个屏幕截图-当按钮移动到第二个位置,而不是设置帧,启用/禁用相对于屏幕边缘的约束(或任何适当的)。是否有任何方法可以使用此方法并且不使用约束而不出现此问题?我建议使用自动布局动画,但是既然你让它工作了。。