Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/110.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 更改2选项卡视图控制器中的自定义选项卡栏位置_Iphone_Ios_Xcode - Fatal编程技术网

Iphone 更改2选项卡视图控制器中的自定义选项卡栏位置

Iphone 更改2选项卡视图控制器中的自定义选项卡栏位置,iphone,ios,xcode,Iphone,Ios,Xcode,我正在使用带按钮的自定义选项卡栏。我已在顶部位置创建自定义选项卡栏。我已成功创建。但我希望选项卡栏位置位于两视图控制器>的中心位置。我该如何操作?是否可能?? 这是我的密码 这是我的自定义选项卡bar.m文件 -(void)addCustomElements { btn1 = [UIButton buttonWithType:UIButtonTypeCustom]; //Setup the button btn1.frame = CGRectMake(0, 264, 65, 40); /

我正在使用带按钮的自定义选项卡栏。我已在顶部位置创建自定义选项卡栏。我已成功创建。但我希望选项卡栏位置位于两视图控制器>的中心位置。我该如何操作?是否可能?? 这是我的密码

这是我的自定义选项卡bar.m文件

-(void)addCustomElements
 {
   btn1 = [UIButton buttonWithType:UIButtonTypeCustom]; //Setup the button
btn1.frame = CGRectMake(0, 264, 65, 40); // Set the frame (size and position) of the button)
[btn1 setBackgroundColor:[UIColor darkGrayColor]];
[btn1.titleLabel setFont:[UIFont fontWithName:@"Helvetica Neue" size:16.0]];
[btn1 setTitle:@"Info" forState:UIControlStateNormal];
[btn1 setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[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

btn2 = [UIButton buttonWithType:UIButtonTypeCustom]; //Setup the button
btn2.frame = CGRectMake(64, 264, 65, 40); // Set the frame (size and position) of the button)
[btn2 setBackgroundColor:[UIColor darkGrayColor]];
[btn2.titleLabel setFont:[UIFont fontWithName:@"Helvetica Neue" size:16.0]];
[btn2 setTitle:@"Book" forState:UIControlStateNormal];
[btn2 setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[btn2 setTag:1]; // Assign the button a "tag" so when our "click" event is called we know which button was pressed.
[btn2 setSelected:true];


btn3 = [UIButton buttonWithType:UIButtonTypeCustom]; //Setup the button
btn3.frame = CGRectMake(128, 264, 65, 40); // Set the frame (size and position) of the button)
[btn3 setBackgroundColor:[UIColor darkGrayColor]];
[btn3.titleLabel setFont:[UIFont fontWithName:@"Helvetica Neue" size:16.0]];
[btn3 setTitle:@"Menu" forState:UIControlStateNormal];
[btn3 setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[btn3 setTag:2]; // Assign the button a "tag" so when our "click" event is called we know which button was pressed.
[btn3 setSelected:true];

btn4 = [UIButton buttonWithType:UIButtonTypeCustom]; //Setup the button
btn4.frame = CGRectMake(193, 264, 65, 40); // Set the frame (size and position) of the button)
[btn4.titleLabel setFont:[UIFont fontWithName:@"Helvetica Neue" size:16.0]];
[btn4 setBackgroundColor:[UIColor darkGrayColor]];
[btn4 setTitle:@"Reviews" forState:UIControlStateNormal];
[btn4 setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[btn4 setTag:3]; // Assign the button a "tag" so when our "click" event is called we know which button was pressed.
[btn4 setSelected:true];

btn5 = [UIButton buttonWithType:UIButtonTypeCustom]; //Setup the button
btn5.frame = CGRectMake(258, 264, 65, 40); // Set the frame (size and position) of the button)
[btn5.titleLabel setFont:[UIFont fontWithName:@"Helvetica Neue" size:16.0]];
[btn5 setBackgroundColor:[UIColor darkGrayColor]];
[btn5 setTitle:@"Map" forState:UIControlStateNormal];
[btn5 setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[btn5 setTag:4]; // Assign the button a "tag" so when our "click" event is called we know which button was pressed.
[btn5 setSelected:true];


// Add my new buttons to the view
[self.view addSubview:btn1];
[self.view addSubview:btn2];
[self.view addSubview:btn3];
[self.view addSubview:btn4];
 [self.view addSubview:btn5];

// 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];
[btn5 addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
 }
   - (void)buttonClicked:(id)sender
  {
int tagNum = [sender tag];
[self selectTab:tagNum];
}

-(void)selectTab:(int)tabID
{
switch(tabID)
{
    case 0:
        [btn1 setSelected:true];
        [btn2 setSelected:false];
        [btn3 setSelected:false];
        [btn4 setSelected:false];
        [btn5 setSelected:false];
        break;
    case 1:
        [btn1 setSelected:false];
        [btn2 setSelected:true];
        [btn3 setSelected:false];
        [btn4 setSelected:false];
        [btn5 setSelected:false];
        break;
    case 2:
        [btn1 setSelected:false];
        [btn2 setSelected:false];
        [btn3 setSelected:true];
        [btn4 setSelected:false];
        [btn5 setSelected:false];
        break;
    case 3:
        [btn1 setSelected:false];
        [btn2 setSelected:false];
        [btn3 setSelected:false];
        [btn4 setSelected:true];
        [btn5 setSelected:false];
        break;
    case 4:
        [btn1 setSelected:false];
        [btn2 setSelected:false];
        [btn3 setSelected:false];
        [btn4 setSelected:false];
        [btn5 setSelected:true];
        break;
}

    if (self.selectedIndex == tabID) {
    UINavigationController *navController = (UINavigationController *)[self selectedViewController];
    [navController popToRootViewControllerAnimated:YES];
} else {
    self.selectedIndex = tabID;
}


 }
- (void)viewDidLoad
{
[super viewDidLoad];

[self hideExistingTabBar];
[self addCustomElements];

// Do any additional setup after loading the view.
}


请帮忙。提前谢谢

您可以尝试这种方式,这是链接和源代码,在这里您可以更改选项卡的位置


希望,这对您有所帮助。

我希望一个视图控制器的选项卡栏位于顶部,第二个视图控制器的选项卡栏位于中心,使用自定义选项卡栏。这里有很多重复的代码。这对于重构成方法来说已经成熟了。我已经使用了5个按钮作为选项卡。这就是为什么我使用框架并分别为每个按钮分配它们