Wil*_*son 1 xcode interpolation uibutton
尝试制作一个小型点击游戏,你有一个正方形网格,需要按不同的顺序点击它们.偶尔这些方块会互相交换位置.
我想我需要将每个方块的位置放入一个数组中.然后,当需要移动时,从当前位置转到从阵列中随机选择的位置,然后删除阵列中的该位置,这样我就不会在同一个位置获得多个按钮.
不幸的是,我甚至无法移动UIButtons,更不用说在两个位置之间进行插值.
目前这将移动一个按钮:
-(IBAction)button:(id)sender
{
button.center = CGPointMake(200, 200);
}
Run Code Online (Sandbox Code Playgroud)
但我不希望它像那样工作,我希望它能像这样工作,但它不起作用:
if (allButtonsPressed == YES)
{
button.center = CGPointMake(200, 200);
}
Run Code Online (Sandbox Code Playgroud)
如果放置如下,它甚至不会移动:
-(void)viewDidLoad
{
[super viewDidLoad];
button.center = CGPointMake(200, 200);
}
Run Code Online (Sandbox Code Playgroud)
为清楚起见,按钮是通过Interface Builder添加的,所有这些情况在做其他事情时都有效,所以我猜UIButtons需要以特定的方式移动/动画?
Rya*_*los 12
viewDidLoad在视图可见之前发生,因此它将仅移动而不是动画.您可以尝试将其放在viewDidAppear方法中.
你可以在UIView动画块中包装东西,如果你想让它们动画而不是闪烁到位.
[UIView animateWithDuration:0.5 animations:^{
button.center = CGPointMake(200.0, 200.0);
}];
Run Code Online (Sandbox Code Playgroud)
由于您正在使用界面构建器,因此我假设您使用属性来跟踪按钮.如果您只使用几个设置按钮,但是我希望在游戏中这些按钮会发生变化,以便您可能想要移动到代码或至少使用IBOutletCollections来跟踪按钮,这可以工作.
Swift 3.0
UIView.animate(withDuration: 0.5) { [weak self] in
self?.button.center = CGPoint(x: 200, y: 200)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5322 次 |
| 最近记录: |