Iphone 如何在Xcode中构建幻灯片菜单
我是Xcode开发新手,我想开发一个由iPhone应用程序中的UIToolbar触发的幻灯片菜单 我所看到的是创建一个带有菜单按钮的子视图,将其添加到主视图中,并在点击切换按钮时将其向上或向下隐藏 我该如何通过编程实现这一点?!iPhone上的Opera应用程序很好地做到了这一点,如图所示Iphone 如何在Xcode中构建幻灯片菜单,iphone,xcode,ios5,user-interface,Iphone,Xcode,Ios5,User Interface,我是Xcode开发新手,我想开发一个由iPhone应用程序中的UIToolbar触发的幻灯片菜单 我所看到的是创建一个带有菜单按钮的子视图,将其添加到主视图中,并在点击切换按钮时将其向上或向下隐藏 我该如何通过编程实现这一点?!iPhone上的Opera应用程序很好地做到了这一点,如图所示 您所说的可以通过代码来完成,方法是将子视图添加到主视图中,并上下滑动以使其可见和不可见 1向远y坐标添加子视图,使其最初在视图中不可见 subView = [[UIView alloc]initWithF
您所说的可以通过代码来完成,方法是将子视图添加到主视图中,并上下滑动以使其可见和不可见 1向远y坐标添加子视图,使其最初在视图中不可见
subView = [[UIView alloc]initWithFrame:CGRectMake(0,470,320,200)]]; // subView is an ivar
// Add stuffs to your subview
[self.view addSubview:subView];
2现在制作两个iBaction showMySubview和hideMySubview,并将它们链接到相应的按钮,或者您可以通过检查一个按钮的label.text来进行切换
3在showMySubview中
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1.5];
[UIView setAnimationDelay:0.0];
subView.frame = CGRectMake(0, 50, 320, 200);
[UIView commitAnimations];
4在你的阴暗面上
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1.5];
[UIView setAnimationDelay:0.0];
editPopUpView.frame = CGRectMake(0, 470, 320, 200);
[UIView commitAnimations];
您还可以对子视图进行一些美化,以使其看起来更漂亮。将QuartzCore框架添加到项目中,并将其导入到.m文件中,并在将子视图添加到主视图后添加这些行。导入为import QuartzCore/QuartzCore.h
希望这对您有所帮助:
编辑:
通过代码将按钮添加到子视图:
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
btn.frame = CGRectMake(j*60,200+ 35 * i ,50 , 30);
//[btn setTitle:@"Test" forState:UIControlStateNormal];
[btn setBackgroundImage:[UIImage imageNamed:@"normal.png"] forState:UIControlStateNormal];
[btn setBackgroundImage:[UIImage imageNamed:@"selected.png"] forState:UIControlStateHighlighted];
btn.tag = (j + 1) + (3 * i);
[btn addTarget:self action:@selector(subViewButtonClicked:) forControlEvents:UIControlEventTouchUpInside];
btn.showsTouchWhenHighlighted = YES;
[subView addSubview:btn]; // its the subview we added to our main view add this after initializing the subview
}
}
可能有很多简单的方法,但希望这能让你有一个开始:你所说的可以通过代码来完成,方法是在主视图中添加一个子视图,然后上下滑动使其可见和不可见 1向远y坐标添加子视图,使其最初在视图中不可见
subView = [[UIView alloc]initWithFrame:CGRectMake(0,470,320,200)]]; // subView is an ivar
// Add stuffs to your subview
[self.view addSubview:subView];
2现在制作两个iBaction showMySubview和hideMySubview,并将它们链接到相应的按钮,或者您可以通过检查一个按钮的label.text来进行切换
3在showMySubview中
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1.5];
[UIView setAnimationDelay:0.0];
subView.frame = CGRectMake(0, 50, 320, 200);
[UIView commitAnimations];
4在你的阴暗面上
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1.5];
[UIView setAnimationDelay:0.0];
editPopUpView.frame = CGRectMake(0, 470, 320, 200);
[UIView commitAnimations];
您还可以对子视图进行一些美化,以使其看起来更漂亮。将QuartzCore框架添加到项目中,并将其导入到.m文件中,并在将子视图添加到主视图后添加这些行。导入为import QuartzCore/QuartzCore.h
希望这对您有所帮助:
编辑:
通过代码将按钮添加到子视图:
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
btn.frame = CGRectMake(j*60,200+ 35 * i ,50 , 30);
//[btn setTitle:@"Test" forState:UIControlStateNormal];
[btn setBackgroundImage:[UIImage imageNamed:@"normal.png"] forState:UIControlStateNormal];
[btn setBackgroundImage:[UIImage imageNamed:@"selected.png"] forState:UIControlStateHighlighted];
btn.tag = (j + 1) + (3 * i);
[btn addTarget:self action:@selector(subViewButtonClicked:) forControlEvents:UIControlEventTouchUpInside];
btn.showsTouchWhenHighlighted = YES;
[subView addSubview:btn]; // its the subview we added to our main view add this after initializing the subview
}
}
可能有很多简单的方法,但希望这能让你有一个开始:你好,纳文,非常感谢!这有助于完成我任务的前半部分!我现在想在菜单视图中实现网格状的布局,就像在我的附件中一样。我可以将UICollectionView与UICollectionViewCells一起使用吗?我尝试过,但初始化视图及其单元格时遇到问题。@VinodVishwanath最简单的方法是以这种方式添加自定义按钮,并为其提供背景图像将按钮以编程方式添加到子视图。@VinodVishwanath根据您随附的图像编辑了我的答案,非常感谢!我让它的大部分工作,但按钮不呈现在屏幕上。我甚至试着给按钮一个背景色和边框,但它们就是不可见!在初始化子视图对象之后,我放置for循环来创建按钮。还是不行。嗨,纳文,非常感谢!这有助于完成我任务的前半部分!我现在想在菜单视图中实现网格状的布局,就像在我的附件中一样。我可以将UICollectionView与UICollectionViewCells一起使用吗?我尝试过,但初始化视图及其单元格时遇到问题。@VinodVishwanath最简单的方法是以这种方式添加自定义按钮,并为其提供背景图像将按钮以编程方式添加到子视图。@VinodVishwanath根据您随附的图像编辑了我的答案,非常感谢!我让它的大部分工作,但按钮不呈现在屏幕上。我甚至试着给按钮一个背景色和边框,但它们就是不可见!在初始化子视图对象之后,我放置for循环来创建按钮。还是不行。