【问题标题】:using transitionFromView with UIBarButtonItem customView使用带有 UIBarButtonItem customView 的 transitionFromView
【发布时间】:2013-09-18 13:39:09
【问题描述】:

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

我已经将一个按钮拖到界面构建器中的导航栏上,据我所知,它插入了一个UIBarButtonItem,该按钮作为其customView

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

我希望这是一个奇怪的模拟器故障,但它也发生在设备上。 有没有人遇到过这种情况或看到我哪里出错了?

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

}];

【问题讨论】:

标签: ios uinavigationcontroller uibarbuttonitem uiviewanimation uiviewanimationtransition


【解决方案1】:

事实证明,这正是 UIView.transitionFromViewUIView.transitionWithView 的预期行为......

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

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

【讨论】:

    【解决方案2】:

    在您的代码中,fromView 似乎与 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等等。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多