iPhone 向右翻转按钮(如 iTunes)

标签 iphone core-animation rightbarbuttonitem

我正在尝试在两个 View 之间切换。这很简单,代码如下,但我还想同时翻转用于执行翻转的按钮。

当您播放轨道时,您可以在 iPod 应用程序中看到此行为;点击翻转按钮会在封面艺术和轨道列表之间翻转,但会同时翻转按钮。

这是导航 Controller 上的页面,我要翻转的按钮是rightBarButtonItem

这是我到目前为止的代码。这会翻转 View ,但不会翻转 rightBarButton。

[UIView setAnimationBeginsFromCurrentState: YES];
[UIView setAnimationDuration: 0.5f];
[UIView setAnimationCurve: UIViewAnimationCurveEaseInOut];
showingBackside = !showingBackside;
if (showingBackside) {
    [UIView setAnimationTransition: UIViewAnimationTransitionFlipFromLeft
                           forView: self.view
                             cache: YES];
    [self.view addSubview: backside.view];
    [frontside.view removeFromSuperview];
} else {
    [UIView setAnimationTransition: UIViewAnimationTransitionFlipFromRight
                           forView: self.view
                             cache: YES];
    [self.view addSubview: frontside.view];
    [backside.view removeFromSuperview];
}
// flip image, too
NSString *newImage = showingBackside ? @"backside.png" : @"frontside.png";
[(self.navigationItem.rightBarButtonItem) setImage: [UIImage imageNamed: newImage]];
[UIView commitAnimations];

(这里的图像翻转代码可能无法编译;我在尝试解释我想要做什么之后添加了它。)

我遇到麻烦的是我想更改导航 Controller 中最右边的按钮,以便它同时翻转。

我该怎么做?我要对什么 View 进行动画处理?我是作为同一动画 block 的一部分还是作为单独的动画 block 进行动画处理?任何提示将不胜感激,我绝对还没有很好地处理动画。

最佳答案

有一些讨论here ,但解决方案并不是那么优雅。

首先,由于 UIBarButtonItem 不是 UIView 的后代,因此您可能无法直接在 UIBarButtonItem 上使用 UIKit 动画。但是,您可以尝试设置 customView 并为其设置动画。您可以使用相同的动画 block 。

关于iPhone 向右翻转按钮(如 iTunes),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1141013/

相关文章:

ios - 减少 UINavigationBar 中条形按钮项之间的空白

ios - 仅删除一个 RightBarButtonItem

iphone - 'NSInternalInconsistencyException',原因 : 'The NIB data is invalid.' for CustomCell

IOS动画,重复序列

ios - Xcode 和 Swift。宽度是自动计算的,但在 iPhone Xr 上一切正常,在 iPhone X 上看起来很糟糕

objective-c - 使用 AVPlayerLayer 作为 NSView 的支持层

iphone - CATextLayer 和字符之间的跟踪/间距

ios - 如何将添加文本框合并到 navigationItem -> rightBarButtonItem?

iphone - 更改拨动开关颜色

iphone - 游戏中心细节