我正试图在Apple应用的导航栏中翻转UIBarButtonItem,以便在曲目列表和专辑封面之间切换。
我已经在界面构建器的导航栏上拖了一个按钮,根据我的理解,将UIBarButtonItem
插入按钮作为其customView
。
我正在使用以下方法来翻转按钮的customView,但最终会翻转整个导航栏!
我希望这是一个奇怪的模拟器故障,但它也发生在设备上。 有没有人遇到这个或看到我可能会出错的地方?
[UIView transitionFromView:self.mapToggleBarButton.customView
toView:self.mapToggleBarButton.customView
duration:0.5
options:UIViewAnimationOptionTransitionFlipFromLeft completion:^(BOOL finished) {
}];
答案 0 :(得分:0)
事实证明这正是UIView.transitionFromView
和UIView.transitionWithView
的预期行为...
动画将应用于您正在交换的对象的超级视图。你没有必要引用它或任何东西 - 只是一个简单的UIView来封闭按钮,翻转应该按预期工作!
我在这里写了一些:http://mathewsanders.com/animations-in-swift-part-two/
答案 1 :(得分:0)
在您的代码中,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
,例如image
,action
等。