gpt4 book ai didi

ios - 如何动画 UIBarButtonItem 从左侧在 UIToolbar 上滑动?

转载 作者:可可西里 更新时间:2023-11-01 06:08:53 27 4
gpt4 key购买 nike

在我的 iOS 应用程序中,我有一个带有 UIToolbar 控件的媒体播放器。我想让 UIBarButtonItem 在我触摸播放器屏幕时从左侧滑到 UIToolbar 上。

这是我试过的,它确实从左边添加了 UIBarButtonItem,但是没有动画部分。

  // create new button
UIBarButtonItem* b = [[UIBarButtonItem alloc] initWithTitle:@"b"
style:UIBarButtonItemStyleBordered
target:self
action:nil];

NSMutableArray* temp = [toolbar.items mutableCopy]; // store the items from UIToolbar

NSMutableArray* newItems = [NSMutableArray arrayWithObject:b]; // add button to be on the left

[newItems addObjectsFromArray:temp]; // add the "old" items

[toolbar setItems:newItems animated:YES];

非常感谢任何形式的帮助!

最佳答案

我有一个类似的问题,设计师想要在导航栏中使用这种动画。

假设您的应用不需要其他按钮移动,那么您可以这样做:

    // create a UIButton instead of a toolbar button
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setTitle:@"b" forState:UIControlStateNormal];

// Save the items *before* adding to them
NSArray *items = toolbar.items;

// Create a placeholder view to put into the toolbar while animating
UIView *placeholderView = [[UIView alloc] initWithFrame:button.bounds];
placeholderView.backgroundColor = [UIColor clearColor];
[toolbar setItems:[items arrayByAddingObject:[[UIBarButtonItem alloc] initWithCustomView:placeholderView]]
animated:NO];

// get the position that is calculated for the placeholderView which has been added to the toolbar
CGRect finalFrame = [toolbar convertRect:placeholderView.bounds fromView:placeholderView];
button.frame = CGRectMake(-1*button.bounds.size.width, finalFrame.origin.y, button.bounds.size.width, button.bounds.size.height);
[toolbar addSubview:button];
[UIView animateWithDuration:duration
animations:^{ button.frame = finalFrame; }
completion:^(BOOL finished) {
// swap the placeholderView with the button
[toolbar setItems:[items arrayByAddingObject:[[UIBarButtonItem alloc] initWithCustomView:button]]
animated:NO];
}];

如果您的应用确实需要移动其他按钮,那么它会有点棘手 b/c 您必须只使用 customView 栏按钮项目并获取所有按钮的初始位置,拉动它们进入工具栏(并离开项目列表),为它们制作动画,然后将所有内容放回原处。 (简单,对吧?)祝你好运!

关于ios - 如何动画 UIBarButtonItem 从左侧在 UIToolbar 上滑动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21196255/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com