Ios UIToolbar后面隐藏的UIButton

Ios UIToolbar后面隐藏的UIButton,ios,uibutton,uitoolbar,Ios,Uibutton,Uitoolbar,上下文 我添加了一个UIButton,方法如下: [self.view addSubview:[self returnCustomSubmitButton]]; 我没有将工具栏添加为子视图,而是将ViewControllers navigationController属性toolBarHidden设置为NO.-[self.navigationController setToolbarHidden:NO动画:NO]在视图中将显示 额外细节 我这样做的原因是因为我想创建类似以下工具栏的东西(注意:

上下文

我添加了一个UIButton,方法如下:

[self.view addSubview:[self returnCustomSubmitButton]];

我没有将工具栏添加为子视图,而是将ViewControllers navigationController属性toolBarHidden设置为NO.-
[self.navigationController setToolbarHidden:NO动画:NO]在视图中将显示

额外细节

我这样做的原因是因为我想创建类似以下工具栏的东西(注意:这是一个UIAbbar,但我正在寻找相同的形状)——因此我添加了一个工具栏,然后将UIButton添加到ViewController视图中,并使用工具栏坐标来定位UIButton

我试着遵循这一点(注意:这同样适用于UITabBar),但仍在挣扎:

问题

UIButton隐藏在UIToolbar后面(我希望它位于工具栏顶部)。

问题

  • 我如何解决这个问题
  • 将UIButton转换为UIBarButtonItem是更好的方法吗?并将UIButton添加到viewController的toolbarItems数组
  • 我该怎么做
更新

在多次尝试修复此问题之后,这是否与我正在使用UINavigationController以及我正在向“自定义内容”区域添加一个UIButton以及导航工具栏位于其上方这一事实有关。见下文:

使用此代码

  [self.view bringSubviewToFront:yourButton];
这将解决您的问题。

使用此代码

[self.view insertSubview:[self returnCustomSubmitButton] aboveSubview:toolbar];
然后,您的按钮将位于工具栏上方

UIToolbar *toolbar = [[UIToolbar alloc] init];
toolbar.frame = CGRectMake(0, 0, self.view.frame.size.width, 44);
NSMutableArray *items = [[NSMutableArray alloc] initWithObjects:your buttons, nil]
[toolbar setItems:items];
[self.view addSubview:toolbar];

这可能会对您有所帮助

尽管我认为最好的解决方案是以编程方式创建您的
UIToolbar
,然后创建并添加任何自定义的
uiBarButtonim
s,但以下是解决您问题的可能方法:

注意:苹果是这么说的,所以如果你打算这么做,试试上面的建议)


这似乎不起作用,让我明天继续了解更多细节。我没有将工具栏添加为子视图,而是将ViewController navigationController属性toolBatHidden设置为NO.-[self.navigationController setToolbarHidden:NO动画:NO];在viewWill apearThanks,这似乎也不起作用,让我在早上检查更多。按钮是UIButton而不是UIBarbuttonite。只是为了避免任何混淆。。。这(屏幕截图+链接)是一个
uitabar
好的观点-我将在问题中包括。关于您上次的更新(自定义内容),我在我的回答中对此进行了解释。它仍在后面。继续挖掘。@drc我确信这是可行的,我在发布答案之前已经测试了代码。我会继续尝试让它工作。感谢您迄今为止的帮助和您的时间,非常感谢。不用担心。我很乐意为您提供帮助。您能否澄清一下您对苹果指南中关于不修改“默认工具栏”的评论?我计划在应用程序中使用自定义工具栏,我正在创建一个UIToolBar并将其添加到UIViewController的子视图中,然而,我恢复使用navigationController setToolBarHidden NO,因为我正在努力将工具栏保持在正确的Y位置。该应用程序还隐藏并显示特定上下文中的导航栏,并且当尝试支持4英寸屏幕高度时,它变得太复杂,无法继续设置“自定义”工具栏的框架。
- (void)viewDidLoad
{
    [super viewDidLoad];

    // Show the default toolbar
    [self.navigationController setToolbarHidden:NO];

    // Create a UIButton
    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
    [button setImage:[UIImage imageNamed:@"btn"] forState:UIControlStateNormal];
    [button sizeToFit];

    // Add your targets/actions
    [button addTarget:self action:@selector(doSomething:) forControlEvents:UIControlEventTouchUpInside];

    // Position the button
    // I am sure that there must be
    // a million better ways to do this
    // (it's here just to illustrate the point)
    button.center = self.navigationController.toolbar.center;
    CGRect frame = button.frame;
    frame.origin.y = CGRectGetMaxY([UIScreen mainScreen].bounds) - button.frame.size.height;
    button.frame = frame;

    // Here is the tricky part. Toolbar is not part
    // of your controller's view hierarchy, it belongs
    // to the navigation controller. So add the button there 
    [self.navigationController.view addSubview:button];
}