1

我正在尝试在导航栏中翻转 UIBarButtonItem,就像 Apple 在 iPod 应用程序中所做的那样,以在曲目列表和专辑封面之间切换。

我已经在界面构建器中将一个按钮拖到我的导航栏上,据我所知,它会插入一个UIBarButtonItem带有按钮的customView.

我正在使用以下方法来翻转按钮的 customView,但它最终会翻转整个导航栏!

我希望这是一个奇怪的模拟器故障,但它也发生在设备上。有没有人遇到过这个或看到我可能出错的地方?

[UIView transitionFromView:self.mapToggleBarButton.customView
                    toView:self.mapToggleBarButton.customView
                  duration:0.5
                   options:UIViewAnimationOptionTransitionFlipFromLeft completion:^(BOOL finished) {

}];
4

2 回答 2

0

在您的代码中, thefromView似乎与 the 相同,toView这就是为什么没有动画。例如:


    UIBarButtonItem *refresh = self.navigationItem.rightBarButtonItem;
    UIImageView *imgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"On.png"]];
    [UIView transitionFromView:((UIButton*)refresh.customView).imageView toView:imgView duration:1 options:UIViewAnimationOptionTransitionFlipFromLeft completion:^(BOOL finished) {
       //
        UIButton *btn = ((UIButton*)refresh.customView);
        [btn setImage:[UIImage imageNamed:@"On.png"] forState:UIControlStateNormal];
        [btn addTarget:self action:@selector(tap:) forControlEvents:UIControlEventTouchUpInside];
    }];

记住翻转动画后,你应该重新设置UIButton,比如imageaction等等。

于 2014-08-20T02:53:56.763 回答
0

事实证明,这正是UIView.transitionFromViewand UIView.transitionWithView...

动画应用于您正在交换的对象的超级视图。您不必引用它或任何东西 - 只需一个普通的 UIView 来包围按钮,并且翻转应该按预期工作!

我在这里写了一点:http: //mathewsanders.com/animations-in-swift-part-two/

于 2014-08-20T02:14:43.143 回答