Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 删除更多并使用滚动选项显示所有7个选项卡_Iphone_Ios_Ios6_Uitabbarcontroller - Fatal编程技术网

Iphone 删除更多并使用滚动选项显示所有7个选项卡

Iphone 删除更多并使用滚动选项显示所有7个选项卡,iphone,ios,ios6,uitabbarcontroller,Iphone,Ios,Ios6,Uitabbarcontroller,我是iOS的新手。我正在使用UITabBarController创建iPhone应用程序。由于有5个选项卡项的限制,我在屏幕底部看到选项为More… 我想要的是在底部显示所有7个选项卡栏项。前5个在主屏幕上,并有滚动选项,所以若我滚动标签栏,我可以看到第6和第7标签了 有什么想法/建议如何做到这一点 编辑1 您可以通过子类化uitabar并实现自己的自定义视图来实现这一点。应该是相对简单的。这里有一些很好的信息,你可能会发现对UITabbar子类化很有用 您可以通过对uitabar进行子类化并

我是iOS的新手。我正在使用
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);以及其他。可能的重复