如果我使用标准UIViewController
或UITableViewController
,则导航栏和工具栏会在内容的顶部显示为半透明。但是,如果我使用自己的自定义视图层次结构,我将不再看到效果。在以下屏幕截图中,您可以看到表格视图未显示在粘性工具栏下方。
UIToolbar
的初始化如下:
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
self.translucent = YES;
self.barTintColor = [UIColor colorWithRed:1.0f green:0.0 blue:0.0 alpha:0.1f];
// irrelevant code here
}
return self;
}
loadView
的实际UIViewController
很长,所以我只会展示一个布局图:
___________________________
| _______________________ | <-- UIView (self.view)
| | | |
| | UITableView | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| |_______________________| |
| _______________________ |
| | UIToolbar | |
| |_______________________| |
|___________________________|
我确保在viewDidLoad
中设置扩展布局的边缘:
self.edgesForExtendedLayout = UIRectEdgeAll;
edgesForExtendedLayout的文档是一个单一的内容,因此我不得不考虑其他相互关联的事情,以使工具栏变得半透明。
答案 0 :(得分:0)
您的tableView应该扩展并填充整个视图。然后,您可以设置contentInset,它是顶部导航栏的高度以及底部的工具栏。这样你就可以看到内容流。下面是关于如何做到这一点的代码片段。确保tableView位于视图层次结构的底部,并且导航栏和工具栏位于其顶部。
self.tableView.contentInset = UIEdgeInsetsMake(NavBarHeight, 0, ToolBarHeight+distance_Of_ToolBar_FromThe_Bottom_of_view, 0);