2012-01-13 66 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;