2012-01-13 84 views
1

如何創建一個與facebook應用具有相似視圖佈局的ipad應用?也就是說,當您將主視圖向右滑動時,中間的一個大視圖和左側的菜單式控制器會變得可見? 他們是否使用修改的splitview佈局,還是這是一個自定義的多層佈局?類似於facebook的iPad視圖佈局

我知道我可能必須使用一些手勢識別器,但任何人都可以將我指向如何重製Facebook應用程序佈局的正確方向?例如,兩個主控制器(左側桌面視圖,中間全屏大小的自定義視圖,桌面視圖上方的位置?),以及如何滑入/滑出菜單?

在此先感謝

作注:我只需要橫向,應使變薄更容易。

[編輯]這是我目前的執行與viewdeckcontroller:

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 

RootViewController* menu = [[RootViewController alloc] init]; 
UINavigationController* navController= [[UINavigationController alloc] initWithRootViewController:menu]; 

DetailViewController* center = [[DetailViewController alloc] init]; 

IIViewDeckController* rootController = [[IIViewDeckController alloc] initWithCenterViewController:center leftViewController:navController]; 
_menuController = rootController; 

rootController.leftLedge = [[UIScreen mainScreen] bounds].size.width - 50.0; 

self.window.rootViewController = rootController; 

[self.window makeKeyAndVisible]; 

這是RootViewController的類(左側菜單的事控制器):

-(void)loadView 
{ 
// [super loadView]; 
    // self.tableView = [[[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped] autorelease]; 

    self.view= [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 320, 704)]; 

    UITableView* tableView= [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped]; 

    [self.view addSubview:tableView]; 

    self.tableView= tableView; 
} 

回答

1

IIViewDeckController實現滑動視圖(如在路徑和Facebook應用程序中),也支持旋轉。

+0

我決定挑選這個庫,因爲其他人似乎是iPhone只,並且還支持犯規橫向。 我現在遇到的問題是左邊的表格式viewcontroller(它隱藏在中央視圖控制器下)太寬了。我想使它320px寬(默認tableview寬度),但我似乎無法得到它。桌面視圖和導航欄都太寬了。有任何想法嗎? (添加上面的代碼來演示) – user826955 2012-01-13 22:00:18

0

我知道這可能有點晚。很難確定這是你的意思,但是對於左側滑出視圖的寬度,可以通過修改leftLedge屬性來控制它顯示的多少,以便從邊緣開始應該覆蓋​​多少個像素centerViewController。即。 leftLedge = 50將使左菜單320-50 = 270可見,leftLedge = 250會使左菜單320-250 = 70可見。這是可見寬度而非實際寬度。

在你的appDelegate

IIViewDeckController *deckController = [[IIViewDeckController alloc] initWithCenterViewController:self.mainNavigationController leftViewController:self.sideMenuViewController]; 

deckController.panningMode = IIViewDeckNavigationBarPanning; 
deckController.leftLedge = 50; 
deckController.centerhiddenInteractivity = IIViewDeckCenterHiddenNotUserInteractiveWithTapToClose;