我怎样才能在iphone应用程序开发的导航栏上添加超过10个button?

在我的应用程序中,我必须在导航栏上添加8个button。因此,这些button应该位于视图中,并且应该有一个上一个和下一个button,这是非常正常的。 当我按下一个button,然后使用animation,它会显示下一个button,其中超出了视图和前一个button相同。

详细信息:

  1. UINavigation Bar – > leftBaritem [上一个button] + view + rightBaritem [下一个button];

  2. 视图将包含8个button。 如果我再解释一下,它应该是这样的:

上一个+ | A | B | C | D | E | F | G | H +旁边

当我按下

下一个

那么它会显示像这样:

以前的+ | B | C | D | E | F | G | H +旁边

像这样

以前

button。

编辑:

在这个图片中,在视图中有三个button,但是我有六个button添加在视图“Dashbord,order,Product”上。 现在,当我按“>”或“<”或左/右栏项目时,它将显示导航栏的视图外的button。

在这里输入图像说明

你做错了什么 你不应该试图强制8个button导航栏。

你需要重新考虑你的界面。 想到两个合理的方法:

  • 使用标签栏。 一个标签栏支持处理更多的选项比在屏幕上适合。 例如,内置的音乐应用程序有10个选项卡。

  • 将您的八个button放在导航控制器下的全屏视图中。 当用户点击一个button时,按下相应的视图。 用户可以popup(使用导航控制器的普通后退button支持)来select不同的button。

我已经解决了这个问题稍微不同的方式….

viewDidLoad我有一个scrollView并调用我的function

 menuScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0,0,320,40)]; menuScrollView.showsHorizontalScrollIndicator = FALSE; menuScrollView.showsVerticalScrollIndicator = FALSE; menuScrollView.bounces = TRUE; [self createMenuWithButtonSize:CGSizeMake(70.0, 30.0) withOffset:20.0f noOfButtons:7]; 

然后在我的function我已经创build了我的菜单buttons ,将看起来像navigation bar上的button

 -(void)createMenuWithButtonSize:(CGSize)buttonSize withOffset:(CGFloat)offset noOfButtons:(int)totalNoOfButtons{ NSLog(@"inserting into the function for menu bar button creation"); for (int i = 0; i < totalNoOfButtons; i++) { UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; [button addTarget:self action:@selector(mybuttons:) forControlEvents:UIControlEventTouchUpInside]; if(i==0){ [button setTitle:[NSString stringWithFormat:@"Dashboard"] forState:UIControlStateNormal];//with title } else if(i==1){ [button setTitle:[NSString stringWithFormat:@"Order"] forState:UIControlStateNormal];//with title } else if(i==2){ [button setTitle:[NSString stringWithFormat:@"Product"] forState:UIControlStateNormal];//with title } else if(i==3){ [button setTitle:[NSString stringWithFormat:@"Customers"] forState:UIControlStateNormal];//with title } else if(i==4){ [button setTitle:[NSString stringWithFormat:@"Content"] forState:UIControlStateNormal];//with title } else if(i==5){ [button setTitle:[NSString stringWithFormat:@"Site Analysis"] forState:UIControlStateNormal];//with title } else if(i==6){ [button setTitle:[NSString stringWithFormat:@"Store Settings"] forState:UIControlStateNormal];//with title } else if(i==7){ [button setTitle:[NSString stringWithFormat:@"CMS Settings"] forState:UIControlStateNormal];//with title } button.frame = CGRectMake(i*(offset+buttonSize.width), 8.0, buttonSize.width, buttonSize.height); button.clipsToBounds = YES; button.showsTouchWhenHighlighted=YES; button.layer.cornerRadius = 0;//half of the width //button.layer.borderColor=[UIColor clearColor]; button.layer.backgroundColor=[UIColor blueColor].CGColor; button.titleLabel.font = [UIFont systemFontOfSize:10]; button.layer.borderWidth=0.0f; button.tag=i; [menuScrollView addSubview:button]; } menuScrollView.contentSize=CGSizeMake((buttonSize.width + offset) * totalNoOfButtons, buttonSize.height); [self.view addSubview:menuScrollView]; } 

它解决了…快乐编码… :))