2

UIToolbar在 iOS 中使用 a 并试图通过从右侧滑入来获得一个“到达”的新按钮。有没有办法直接访问栏上按钮的“位置”?我目前有一个接近预期效果的混乱解决方法,但我希望有一种方法可以使用 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];
}

这里的前提是使用 anNSTimer来更改 Fixed Space Bar Button item 的宽度,并倒计时到零。我发现我必须更改实际按钮的宽度才能使其工作,否则不会出现“动画”。我知道这很混乱,有人必须有更清洁的方法。

4

1 回答 1

1

我建议添加一个纯UIView文本作为子视图,该子视图UIToolbar与条形按钮完全一样(您可以通过调用renderInContext:现有按钮来获得它),然后将该视图动画到正确的位置。然后,在该动画的完成块中,您可以设置真实按钮和removeFromSuperview动画视图,并且用户看起来无法区分。

于 2013-04-16T00:31:52.330 回答