2011-11-03 42 views
30

可能重复:
What's the best way to develop a sideswipe menu like the one in Facebook's new iOS app?iphone Facebook的侧面菜单中使用目标C

Facebook的iPhone应用程序有一个新的侧面菜单,
screen http://www.tapscape.com/wp-content/uploads/2011/10/facebook2.jpg

有谁知道我可以在我的iphone应用程序中使用目标c实现此功能?

+0

检查[此库](http://www.cocoacontrols.com/platforms/ios/controls/zuuirevealcontroller)。帮助过我!这是完成图书馆做这真的很好! – noctri

+0

非常简单易用https://github.com/shivamchove/facebook_style_left_menus library –

回答

51

真的很简单。首先,您需要制作一个位于可见光下的视图控制器。您可以在视图发送到背面是这样的:

[self.view sendSubviewToBack:menuViewController.view]; 

然后,你把你的导航栏左侧的菜单按钮,然后写一个处理程序有点像这样:

- (void)menuButtonPressed:(id)sender { 

    CGRect destination = self.navigationController.view.frame; 

    if (destination.origin.x > 0) { 
     destination.origin.x = 0; 
    } else { 
     destination.origin.x += 254.5; 
    } 

    [UIView animateWithDuration:0.25 animations:^{ 

     self.navigationController.view.frame = destination;   

    } completion:^(BOOL finished) { 

     self.view.userInteractionEnabled = !(destination.origin.x > 0); 

    }]; 
} 

这是总体思路。您可能必须更改代码以反映您的视图层次结构等。

+2

你太棒了! – Daniel

+7

@greenisus我很困惑你如何将菜单发送给后台?当我这样做时,它只是显示一个黑色的侧面菜单。 – Bot

+0

这对我有效,谢谢!有谁知道如何处理这个侧面菜单的方向变化? – odaa