Ios UIToolbar后面隐藏的UIButton
上下文 我添加了一个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]在视图中将显示 额外细节 我这样做的原因是因为我想创建类似以下工具栏的东西(注意:
[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];
}