我想复制iPhone音乐应用程序的行为。当您在该应用中播放专辑时,点击右上角的按钮时,专辑封面将翻转显示其后面的曲目UITableView
。iOS 5 Storyboard segue复制音乐应用程序的专辑曲目视图
是否可以通过自定义UIStoryboardSegue
完成此操作?
或者是在两个使用相同控制器的视图之间翻转的最佳方式?
我想复制iPhone音乐应用程序的行为。当您在该应用中播放专辑时,点击右上角的按钮时,专辑封面将翻转显示其后面的曲目UITableView
。iOS 5 Storyboard segue复制音乐应用程序的专辑曲目视图
是否可以通过自定义UIStoryboardSegue
完成此操作?
或者是在两个使用相同控制器的视图之间翻转的最佳方式?
在相同视图控制器的两个视图之间翻转可能更简单,例如,
- (IBAction)showTracksView
{
[UIView transitionWithView:self.view
duration:1.0
options:UIViewAnimationOptionTransitionFlipFromLeft
animations:^{ tracksView.hidden = NO; }
completion:^(BOOL finished){ self.navigationItem.title = @"Tracks"; }];
}
- (IBAction)hideTracksView
{
[UIView transitionWithView:self.view
duration:1.0
options:UIViewAnimationOptionTransitionFlipFromLeft
animations:^{ tracksView.hidden = YES; }
completion:^(BOOL finished){ self.navigationItem.title = @"Album cover"; }];
}
其中tracksView是你的轨道UITableView。
我有这个挑战,并解决了它使用自定义segue呈现视图控制器。只需创建一个基于UIStoryboardSegue的新课程。
这里是我的自定义赛格瑞
.h文件中:
#import <UIKit/UIKit.h>
@interface BRTrackNotesSegue : UIStoryboardSegue
@end
.m文件
@implementation BRTrackNotesSegue
- (void) perform {
UIViewController *src = (UIViewController *) self.sourceViewController;
UIViewController *dst = (UIViewController *) self.destinationViewController;
[UIView transitionWithView:src.navigationController.view duration:0.50
options:UIViewAnimationOptionTransitionFlipFromLeft
animations:^{
[src.navigationController pushViewController:dst animated:NO];
}
completion:NULL];
}
@end
在界面生成器中选择SEGUE与Segue公司类设置的南你的习惯继续。
第二视图控制器包含以下具有相同的动画驳回:
- (IBAction)done:(id)sender {
[UIView transitionWithView:self.navigationController.view
duration:0.50
options:UIViewAnimationOptionTransitionFlipFromLeft
animations:nil
completion:nil];
[self.navigationController popViewControllerAnimated:NO];
}
对,这就是我终于实现了。我希望能够使用两个不同的视图控制器并将它们之间的逻辑分开。这是有问题的,所以我最终为播放器视图和UITableView使用了相同的控制器。这使得故事板变得更加困难,因为我现在必须在同一场景中使用多个图层。 – 2012-02-27 22:59:46