UIButton隐藏在UIToolbar后面

时间:2013-04-26 03:28:44

标签: ios uibutton uitoolbar

上下文

我有一个我正在添加的UIButton,方法如下:

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

我没有将工具栏添加为子视图,我将ViewControllers navigationController属性toolBarHidden设置为NO。 - [self.navigationController setToolbarHidden:NO animated:NO];在viewWill apear

额外明细

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

This is the form I want to create

我试图跟着这个(注意:这是针对UITabBar),但是在努力:http://idevrecipes.com/2010/12/16/raised-center-tab-bar-button/

问题

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

问题

  • 我该如何解决这个问题?
  • 将UIButton转换为UIBarButtItem会更好吗?并将一个UIButton添加到viewController的toolbarItems数组中?
  • 我该怎么做?

更新

经过多次尝试修复此问题后,这与我使用UINavigationController的事实有关,而且我正在将“UIButton”添加到“自定义内容”区域,导航工具栏位于其上方无论我做什么。见下文:

enter image description here

4 个答案:

答案 0 :(得分:0)

使用此代码。

  [self.view bringSubviewToFront:yourButton];

这应该可以解决你的问题。

答案 1 :(得分:0)

使用此代码

[self.view insertSubview:[self returnCustomSubmitButton] aboveSubview:toolbar];

然后您的按钮将位于工具栏上方。

答案 2 :(得分:0)

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];

这可能会对你有所帮助

答案 3 :(得分:0)

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

注意:Apple说you must not try to modify UINavigationController's default toolbar,所以如果您打算这样做,请尝试以上建议)

- (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];
}