如何移动UIToolbar项目?

时间:2012-10-14 12:01:20

标签: iphone ios objective-c uitoolbar uitoolbaritem

我在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来更改固定空格键按钮项的宽度,并倒计时到零。我发现我必须改变实际按钮的宽度才能使其工作,否则不会出现“动画”。我知道这很乱,有人必须有一个更清洁的方式。

1 个答案:

答案 0 :(得分:1)

我建议添加一个简单的UIView作为UIToolbar的子视图,其完全按照条形按钮呈现(您可以通过在现有按钮上调用renderInContext:来获取此视图)然后将该视图设置为适当的位置。在该动画的完成块中,您可以设置真实按钮和removeFromSuperview动画视图,它看起来与用户无法区分。