我在iOS中使用了UIToolbar
,并试图通过从右侧滑入来获得一个新的“到达”按钮。有没有办法直接访问栏上按钮的“位置”?我目前有一个凌乱的解决方法,接近期望的效果,但我希望有一种方法来使用Core Animation移动它们,所以我可以实现'EaseInEaseOut'类型的计时功能。有什么想法吗?
- (void) testPart1 {
[NSTimer scheduledTimerWithTimeInterval:(0) target:self selector:@selector(testPart2:) userInfo:[NSNumber numberWithInt:500] repeats:NO];
}
- (void) testPart2:(NSTimer*)sender {
int countdown = [sender.userInfo integerValue];
theSpace.width = 10+(int)countdown;
itemTestButton.width = 49;
itemTestButton.width = 50;
countdown -= 5;
if(countdown>0)
[NSTimer scheduledTimerWithTimeInterval:(0.004) target:self selector:@selector(testPart2:) userInfo:[NSNumber numberWithInt:countdown] repeats:NO];
}
这里的前提是使用NSTimer
来更改固定空格键按钮项的宽度,并倒计时到零。我发现我必须改变实际按钮的宽度才能使其工作,否则不会出现“动画”。我知道这很乱,有人必须有一个更清洁的方式。
答案 0 :(得分:1)
我建议添加一个简单的UIView
作为UIToolbar
的子视图,其完全按照条形按钮呈现(您可以通过在现有按钮上调用renderInContext:
来获取此视图)然后将该视图设置为适当的位置。在该动画的完成块中,您可以设置真实按钮和removeFromSuperview
动画视图,它看起来与用户无法区分。