问题
Context
I've got a UIButton that I'm adding, method is below:
[self.view addSubview:[self returnCustomSubmitButton]];
I don't add the toolbar as a subview, I set the ViewControllers navigationController property toolBarHidden to NO. - [self.navigationController setToolbarHidden:NO animated:NO];
at viewWill apear
Extra Detail
The reason I'm doing this is because I want to create something like the toolbar (NOTE: This is a UITabBar, but I'm looking for the same shape) below - so I'm adding a toolbar and then adding a UIButton to the viewControllers view and using the toolbars coordinates to position the UIButton
I've tried to follow along to this (NOTE: Again this is for a UITabBar), but struggling: http://idevrecipes.com/2010/12/16/raised-center-tab-bar-button/
Problem
The UIButton is hidden behing the UIToolbar (I want it to sit on top of the toolbar).
Questions
- How do I solve this?
- Would it be a better approach to convert a UIButton to a UIBarButtItem? And add a UIButton to a viewController's toolbarItems array?
- How would I do this?
Update
After lots of attempts at fixing this, is this something to do with the fact I'm using UINavigationController and the fact that I'm adding a UIButton to the "Custom Content" area and the nav toolbar sits on top of that whatever I do. See below:
回答1:
Although I think that the best solution is to create your UIToolbar
programmatically and then create and add any custom UIBarButtonItem
s, here is a possible solution to your problem:
(Note: Apple says that you must not try to modify UINavigationController's default toolbar, so if you're planning to do so try the above suggestion)
- (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];
}
回答2:
Make use of this code.
[self.view bringSubviewToFront:yourButton];
That should solve your problem.
回答3:
use this codes
[self.view insertSubview:[self returnCustomSubmitButton] aboveSubview:toolbar];
then your button will be above the toolbar.
回答4:
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];
this may help you
来源:https://stackoverflow.com/questions/16228275/uibutton-hidden-behind-uitoolbar