如何在Mac上以编程方式移动界面对象?

Reg*_*an 2 objective-c

所以我有一些我想移动的NSButtons和NSImages(我认为它们会以同样的方式移动).我想将它们移动到窗口上的新坐标.我假设我可以找到我想在Interface Builder上移动它们的坐标,然后以编程方式移动它们.

另外,我该如何为这个动作制作动画?并控制动画的速度,风格等等?有内置功能吗?或者我是否必须制作图像文件并循环浏览它们?

注意:我主要想知道如何更改对象的坐标,动画的东西是次要的,但如果你能描述它也会让我很开心.

D.C*_*.C. 5

每个UI元素都有一个bounds和frame属性.frame属性具有x,y,width和height属性.如果要移动项目,只需调整frame属性的值:

NSButton *button // assume this exists as your UI object
NSRect rect = NSMakeRect(50.0, 40.0, 250.0, 100.0);
[button setFrame:rect];
Run Code Online (Sandbox Code Playgroud)

这将移动它没有任何动画.如果你想要动画,请浏览对象的动画代理(适用于简单的东西:

[[button animation] setFrame:rect];
Run Code Online (Sandbox Code Playgroud)