我想複製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