gpt4 book ai didi

iphone - 如何为 UINavigationBar 中的按钮更改设置动画?

转载 作者:IT王子 更新时间:2023-10-29 07:43:11 24 4
gpt4 key购买 nike

我在我的代码中调用 -(void)setEditing:(BOOL)editing animated:(BOOL)animated 方法来在我的导航栏 RHS 上的两个按钮之间切换。

-(void)setEditing:(BOOL)editing animated:(BOOL)animated {  
[super setEditing:editing animated:animated];

// Toggle ‘+’ and ‘Add To Order’ button.

if( editing ) {
self.navigationItem.rightBarButtonItem = self.addItemButton;
}
else {
self.navigationItem.rightBarButtonItem = self.addToOrderButton;
}
}

其中 self.addItemButtonself.addToOrderButton 是包含预定义 UIBarButtonItems 的 ivar,在 awakefromNib 中设置。

self.addToOrderButton 中的按钮明显比 self.addItemButton 中的按钮宽,所以我希望它们在两个宽度之间有一个微妙的动画编辑状态的变化被触发(通过点击导航左侧的标准 editButtonItem

如果我用 [UIView beginAnimations:nil context:NULL];[UIView commitAnimations]; 包围整个 if:else按钮的变化确实有动画效果,但它们的位置——从左上角单独飞入到位——而不是原地不动,只是为它们的宽度设置动画。

我如何为导航栏元素制作动画,以便每个单独的元素(RHS 按钮、标题)以更合适、更受限制的方式制作动画?

最佳答案

self.navigationItem.rightBarButtonItem = self.addToOrderButton; 

您可以使用一些特定的方法来为左右栏按钮项目设置动画:

 [self.navigationItem setRightBarButtonItem: self.addToOrderButton animated:YES];

...这将为您制作动画。如果您需要为所有内容设置动画(包括标题),您还可以使用导航栏的 setItems:animated: 方法(将其传递到您想要显示的导航项数组中)

关于iphone - 如何为 UINavigationBar 中的按钮更改设置动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5006582/

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