我在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更改“固定空格键”项目的宽度,并递减为零。我发现必须更改实际按钮的宽度才能使其正常工作,否则不会发生“动画”。我知道这太乱了,有人必须有一种更清洁的方式。

最佳答案

我建议添加一个简单的UIView作为UIToolbar的子视图,该子视图的显示方式与bar按钮完全相同(您可以通过在现有按钮上调用renderInContext:来获得此效果),然后将该视图设置为正确的位置。然后,您可以在该动画的完成块中设置真实按钮,并在动画视图中添加removeFromSuperview,这对用户而言将无法区分。

关于iphone - 如何移动UIToolbar项?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12882007/

10-16 22:19