我在UIViewController
上有一个按钮。当我单击此按钮时,会显示UIToolBar
(在TabBarController上方)。现在,当我向下滚动视图并单击按钮时,UIToolBar将显示在不同的位置(在tababar上方)。我想要的是在所有实例的TabBar上方显示UIToolBar
(即使我向上或向下滚动页面并单击按钮)。
到目前为止我的代码:
toolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 300 , 320 , 55)];
根据此准则,我已将工具栏的X
和Y
个坐标设为0
和323
。因此,即使我向上或向下滚动视图并单击按钮,工具栏也会显示在此位置。
那么如何修改我的代码,在所有实例的TabBar上方显示它。 (即使我向上或向下滚动视图)
答案 0 :(得分:1)
这一切都取决于您将toolBar添加为子视图的位置。如果您希望它始终位于同一位置,请将其添加到当前UIWindow
对象。
UIWindow *mainWindow = [[[UIApplication sharedApplication] delegate] window];
toolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 300 , 320 , 55)];
单击按钮上的将toolBar作为子视图添加到主窗口
[mainWindow addSubview:toolBar];
答案 1 :(得分:0)
问题是:您正在视图上添加工具栏,其坐标硬编码为(0,300,320,55)。这是关于观点的。但不是iPhone屏幕或窗口。滚动视图后添加后,您可以看到视图内容也向上滚动。
您所要做的就是:
UIWindow *mainWindow = [[[UIApplication sharedApplication] delegate] window];
toolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 300 , 320 , 55)];
[mainWindow addSubview:toolBar];
[mainwindow bringSubviewToFront:toolBar];
答案 2 :(得分:-1)
听起来你需要实现以下层次结构:
UITabBarController
V
UINavigationController
V
Your view controller
UINavigationController
有一个toolbar
属性,可以使用setToolbarHidden:animated:
方法显示或隐藏。
根据您的问题,工具栏会直接显示在标签栏上方。
如果添加工具栏作为滚动视图的子视图,则需要处理滚动视图委托方法scrollViewDidScroll:
并在每次触发时重新定位滚动视图。
该方法 - 并向主窗口添加滚动视图 - 两者都有覆盖部分滚动视图的缺点。使用导航控制器的工具栏,视图控制器视图的高度会自动减小工具栏的高度,因此不会重叠。
有关完整说明,请参阅Apple documentation。