Iphone 删除更多并使用滚动选项显示所有7个选项卡
我是iOS的新手。我正在使用Iphone 删除更多并使用滚动选项显示所有7个选项卡,iphone,ios,ios6,uitabbarcontroller,Iphone,Ios,Ios6,Uitabbarcontroller,我是iOS的新手。我正在使用UITabBarController创建iPhone应用程序。由于有5个选项卡项的限制,我在屏幕底部看到选项为More… 我想要的是在底部显示所有7个选项卡栏项。前5个在主屏幕上,并有滚动选项,所以若我滚动标签栏,我可以看到第6和第7标签了 有什么想法/建议如何做到这一点 编辑1 您可以通过子类化uitabar并实现自己的自定义视图来实现这一点。应该是相对简单的。这里有一些很好的信息,你可能会发现对UITabbar子类化很有用 您可以通过对uitabar进行子类化并
UITabBarController
创建iPhone应用程序。由于有5个选项卡项的限制,我在屏幕底部看到选项为More…
我想要的是在底部显示所有7个选项卡栏项。前5个在主屏幕上,并有滚动选项,所以若我滚动标签栏,我可以看到第6和第7标签了
有什么想法/建议如何做到这一点
编辑1
您可以通过子类化uitabar并实现自己的自定义视图来实现这一点。应该是相对简单的。这里有一些很好的信息,你可能会发现对UITabbar子类化很有用 您可以通过对uitabar进行子类化并实现自己的自定义视图来实现这一点。应该是相对简单的。这里有一些很好的信息,你可能会发现对UITabbar子类化很有用 创建自定义选项卡栏 .h
@interface CustomTabBar : UITabBarController {
UIButton *btn1;
UIButton *btn2;
UIButton *btn3;
UIButton *btn4;
UIScrollView * scrlview;
}
-(void) hideTabBar;
-(void) addCustomElements;
@end
.m
-(void)addCustomElements
{
// initialsie scrollView and initialise contentOffset
// Initialise our two images
UIImage *btnImage = [UIImage imageNamed:@"NavBar_01.png"];
UIImage *btnImageSelected = [UIImage imageNamed:@"NavBar_01_s.png"];
btn1 = [UIButton buttonWithType:UIButtonTypeCustom]; //Setup the button
btn1.frame = CGRectMake(0, 430, 80, 50); // Set the frame (size and position) of the button)
[btn1 setBackgroundImage:btnImage forState:UIControlStateNormal]; // Set the image for the normal state of the button
[btn1 setBackgroundImage:btnImageSelected forState:UIControlStateSelected]; // Set the image for the selected state of the button
[btn1 setTag:0]; // Assign the button a "tag" so when our "click" event is called we know which button was pressed.
[btn1 setSelected:true]; // Set this button as selected (we will select the others to false as we only want Tab 1 to be selected initially
// Now we repeat the process for the other buttons
btnImage = [UIImage imageNamed:@"NavBar_02.png"];
btnImageSelected = [UIImage imageNamed:@"NavBar_02_s.png"];
btn2 = [UIButton buttonWithType:UIButtonTypeCustom];
btn2.frame = CGRectMake(80, 430, 160, 50);
[btn2 setBackgroundImage:btnImage forState:UIControlStateNormal];
[btn2 setBackgroundImage:btnImageSelected forState:UIControlStateSelected];
[btn2 setTag:1];
btnImage = [UIImage imageNamed:@"NavBar_03.png"];
btnImageSelected = [UIImage imageNamed:@"NavBar_03_s.png"];
btn3 = [UIButton buttonWithType:UIButtonTypeCustom];
btn3.frame = CGRectMake(160, 430, 80, 50);
[btn3 setBackgroundImage:btnImage forState:UIControlStateNormal];
[btn3 setBackgroundImage:btnImageSelected forState:UIControlStateSelected];
[btn3 setTag:2];
btnImage = [UIImage imageNamed:@"NavBar_04.png"];
btnImageSelected = [UIImage imageNamed:@"NavBar_04_s.png"];
btn4 = [UIButton buttonWithType:UIButtonTypeCustom];
btn4.frame = CGRectMake(240, 430, 80, 50);
[btn4 setBackgroundImage:btnImage forState:UIControlStateNormal];
[btn4 setBackgroundImage:btnImageSelected forState:UIControlStateSelected];
[btn4 setTag:3];
// Add my new buttons to the view
[scrlview addSubview:btn1];
[scrlview addSubview:btn2];
[scrlview addSubview:btn3];
[scrlview addSubview:btn4];
[self.view addSubView: scrlview];
// Setup event handlers so that the buttonClicked method will respond to the touch up inside event.
[btn1 addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
[btn2 addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
[btn3 addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
[btn4 addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
}
- (void)selectTab:(int)tabID
{
switch(tabID)
{
case 0:
[btn1 setSelected:true];
[btn2 setSelected:false];
[btn3 setSelected:false];
[btn4 setSelected:false];
break;
case 1:
[btn1 setSelected:false];
[btn2 setSelected:true];
[btn3 setSelected:false];
[btn4 setSelected:false];
break;
case 2:
[btn1 setSelected:false];
[btn2 setSelected:false];
[btn3 setSelected:true];
[btn4 setSelected:false];
break;
case 3:
[btn1 setSelected:false];
[btn2 setSelected:false];
[btn3 setSelected:false];
[btn4 setSelected:true];
break;
}
self.selectedIndex = tabID;
}
- (void)buttonClicked:(id)sender
{
int tagNum = [sender tag];
[self selectTab:tagNum];
}
请参见创建自定义选项卡栏
.h
@interface CustomTabBar : UITabBarController {
UIButton *btn1;
UIButton *btn2;
UIButton *btn3;
UIButton *btn4;
UIScrollView * scrlview;
}
-(void) hideTabBar;
-(void) addCustomElements;
@end
.m
-(void)addCustomElements
{
// initialsie scrollView and initialise contentOffset
// Initialise our two images
UIImage *btnImage = [UIImage imageNamed:@"NavBar_01.png"];
UIImage *btnImageSelected = [UIImage imageNamed:@"NavBar_01_s.png"];
btn1 = [UIButton buttonWithType:UIButtonTypeCustom]; //Setup the button
btn1.frame = CGRectMake(0, 430, 80, 50); // Set the frame (size and position) of the button)
[btn1 setBackgroundImage:btnImage forState:UIControlStateNormal]; // Set the image for the normal state of the button
[btn1 setBackgroundImage:btnImageSelected forState:UIControlStateSelected]; // Set the image for the selected state of the button
[btn1 setTag:0]; // Assign the button a "tag" so when our "click" event is called we know which button was pressed.
[btn1 setSelected:true]; // Set this button as selected (we will select the others to false as we only want Tab 1 to be selected initially
// Now we repeat the process for the other buttons
btnImage = [UIImage imageNamed:@"NavBar_02.png"];
btnImageSelected = [UIImage imageNamed:@"NavBar_02_s.png"];
btn2 = [UIButton buttonWithType:UIButtonTypeCustom];
btn2.frame = CGRectMake(80, 430, 160, 50);
[btn2 setBackgroundImage:btnImage forState:UIControlStateNormal];
[btn2 setBackgroundImage:btnImageSelected forState:UIControlStateSelected];
[btn2 setTag:1];
btnImage = [UIImage imageNamed:@"NavBar_03.png"];
btnImageSelected = [UIImage imageNamed:@"NavBar_03_s.png"];
btn3 = [UIButton buttonWithType:UIButtonTypeCustom];
btn3.frame = CGRectMake(160, 430, 80, 50);
[btn3 setBackgroundImage:btnImage forState:UIControlStateNormal];
[btn3 setBackgroundImage:btnImageSelected forState:UIControlStateSelected];
[btn3 setTag:2];
btnImage = [UIImage imageNamed:@"NavBar_04.png"];
btnImageSelected = [UIImage imageNamed:@"NavBar_04_s.png"];
btn4 = [UIButton buttonWithType:UIButtonTypeCustom];
btn4.frame = CGRectMake(240, 430, 80, 50);
[btn4 setBackgroundImage:btnImage forState:UIControlStateNormal];
[btn4 setBackgroundImage:btnImageSelected forState:UIControlStateSelected];
[btn4 setTag:3];
// Add my new buttons to the view
[scrlview addSubview:btn1];
[scrlview addSubview:btn2];
[scrlview addSubview:btn3];
[scrlview addSubview:btn4];
[self.view addSubView: scrlview];
// Setup event handlers so that the buttonClicked method will respond to the touch up inside event.
[btn1 addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
[btn2 addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
[btn3 addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
[btn4 addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
}
- (void)selectTab:(int)tabID
{
switch(tabID)
{
case 0:
[btn1 setSelected:true];
[btn2 setSelected:false];
[btn3 setSelected:false];
[btn4 setSelected:false];
break;
case 1:
[btn1 setSelected:false];
[btn2 setSelected:true];
[btn3 setSelected:false];
[btn4 setSelected:false];
break;
case 2:
[btn1 setSelected:false];
[btn2 setSelected:false];
[btn3 setSelected:true];
[btn4 setSelected:false];
break;
case 3:
[btn1 setSelected:false];
[btn2 setSelected:false];
[btn3 setSelected:false];
[btn4 setSelected:true];
break;
}
self.selectedIndex = tabID;
}
- (void)buttonClicked:(id)sender
{
int tagNum = [sender tag];
[self selectTab:tagNum];
}
看这不能满足我的要求。当我添加第五个标签时,它不会滚动,我希望。。。我知道如何创建选项卡,但是我想要滚动选项卡。
UIScrollView*scrlview=[[UIScrollView alloc]initWithFrame:CGRectMake(0,0320,44)];//相应地设置帧的随机值
scrlview.contentSize=CGSizeMake(500,44);[self.view addSubview:scrlview]代码>我添加了UIScrollView*scrlview=[[UIScrollView alloc]initWithFrame:CGRectMake(0,0400,50)];//相应地设置帧的随机值scrlview.contentSize=CGSizeMake(500,44);[self.view addSubview:scrlview]代码>在[self.view addSubview:btn4]之后
和之前的[btn1 addTarget:self action:@sel
相应地设置frame,并在scrlview上添加按钮,而不是在视图[self.view addSubview:btn4];[scrlview addSubview:but];添加[self.view addSubview:scrolview];btn1.frame=CGRectMake(0,430,80,50);将其更改为btn1.frame=CGRectMake(0,0,0,80,50);和其他。这不会给出我想要的。当我添加第5个选项卡时,它不会滚动,我想要…我知道如何创建选项卡,但是我想要滚动选项卡。UIScrollView*scrlview=[[UIScrollView alloc]initWithFrame:CGRectMake(0,0320,44)];//相应地设置frame的随机值
scrlview.contentSize=CGSizeMake(500,44);[self.view addSubview:scrlview];
我添加了UIScrollView*scrlview=[[UIScrollView alloc]initWithFrame:CGRectMake(0,0400,50)];//相应地设置frame的随机值scrlview.contentSize=CGSizeMake(500,44);[self.view addSubview:scrlview];
在[self.view addSubview:btn4]之后;
在之前[btn1 addTarget:self action:@sel
相应地设置frame,并在scrlview上添加按钮,而不是在视图[self.view addSubview:btn4];[scrlview addSubview:but];添加[self.view addSubview:scrolview];btn1.frame=CGRectMake(0,430,80,50);将其更改为btn1.frame=CGRectMake(0,0,80,50);以及其他。可能的重复