- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我已经实现了滑动菜单,但是我想要和 facebook 完全一样的滑动效果。我在 stackoverflow 上看到了以下帖子:
iphone facebook side menu using objective c
我想在其中实现 greenisus 给出的解决方案(投票 15 次),但我在实现时遇到了麻烦,Bot 在对他的回答的评论中提出了同样的问题。“@greenisus 我对你如何将菜单发送到后面感到困惑?当我这样做时,它只显示一个黑色的侧边菜单。”尚未得到答复。
其实很简单。首先,您需要制作一个位于可见 Controller 下方的 View Controller 。您可以像这样将该 View 发送到后面:
[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);
}];
}
只是想知道什么时候我们必须使用下面的方法,第二种方法简单而且工作正常,但不显示其下的菜单 View 。
[self.view sendSubviewToBack:menuViewController.view];
寻找一些指针或解决方案来正确运行上述代码。
最佳答案
其实你应该知道我们该怎么做。只需添加 menuViewController.view 作为 self.view 的 subview 。但这会覆盖 navigationController.view,所以你可以 [self.view sendSubviewToBack:menuViewController.view]。当您需要显示/隐藏 menuViewController 时,您需要使用方法 - (void)menuButtonPressed:(id)sender。
在 HomeViewController 中:
- (void)viewDidLoad
{
[super viewDidLoad];
// be careful with the sequence of the code. If you firstly add the contentViewController and then add the
// menuViewController you need to [self.view sendSubviewToBack:self.menuViewController.view], else you don't
// need to use sendSubviewToBack.
self.menuViewController = [[MenuViewController alloc] init];
self.contentViewController = [[ContentViewController alloc] init];
[self.view addSubview:self.menuViewController.view];
[self.view addSubview:self.contentViewController.view];
}
在 ContentViewController 中:
- (IBAction)showMenu:(id)sender
{
CGRect destination = self.view.frame;
if (destination.origin.x > 0) {
destination.origin.x = 0;
} else {
destination.origin.x += 254.5;
}
[UIView animateWithDuration:0.25 animations:^{
self.view.frame = destination;
} completion:^(BOOL finished) {
//self.view.userInteractionEnabled = !(destination.origin.x > 0);
}];
}
关于iphone - 如何正确使用方法 "sendSubviewToBack"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12017675/
我已经实现了滑动菜单,但是我想要和 facebook 完全一样的滑动效果。我在 stackoverflow 上看到了以下帖子: iphone facebook side menu using obje
你可以看到我的 xib 文件的截图。 我在 viewDidLoad 中做了一些操作 -(void) viewDidLoad { [smallView removeFromSuperview]; [
我正在尝试将 Storyboard创建的名为 pic 的 UIImageView 移动到以编程方式创建的 Collection View 后面。但是,首先将 collectionView 移回某些按钮
我正在尝试将 Storyboard创建的名为 pic 的 UIImageView 移动到以编程方式创建的 Collection View 后面。但是,首先将 collectionView 移回某些按钮
我正在构建一个页面浏览器,该浏览器将页面动画化为从一叠纸上拉出的“纸张”。为了保持流畅的动画效果,我使用了 3 个 UIView,它们堆叠在一起。这三个 View 包含当前页面(在顶部)、上一页(在中
sendSubviewToBack 和 insertSubview:belowSubview: 方法有问题。简单地说,我有一个按钮,我将其插入到另一个 View _centerView 下方。我希望按
根据 Apple 文档: The order of the subviews array defines the Z-order of the subviews. If the views overl
我有一个 UITableViewController,我在过去通过将新添加的 subview 发送到后面成功地应用了渐变背景: //performed on viewDidLoad UIView *b
我在调用 sendSubviewToBack 和 bringSubviewToFront 时遇到问题。我以编程方式使用其他几个元素(如按钮和标签)创建 UIImageView 和 ScrollView
我是一名优秀的程序员,十分优秀!