使用自定义标签栏

时间:2017-03-12 18:15:59

标签: ios objective-c uiscrollview uitabbarcontroller

我创建了一个自定义标签栏控制器。它的工作方式与UITabBarController非常相似,但UITabBar的布局更为高级。

如何调整自定义标签栏控制器中显示的视图的底部内容插入?例如,如果我在自定义标签栏控制器中显示UITableView,我可以手动调整内容插件。

self.tableView.contentInset = UIEdgeInsetsMake(0, 0, 49, 0);
self.tableView.scrollIndicatorInsets = UIEdgeInsetsMake(0, 0, 49, 0);

但是,如果我将另一个视图推送到此表视图(如集合视图),则问题会变得更加复杂。有没有办法让这些视图自动调整其内容插入内容,就像在默认的UITabBarController实现中一样?

1 个答案:

答案 0 :(得分:2)

我们最近在我们的应用程序中做了类似的事情,最终只是拥有一个容器视图,其中包含我们将要在控制器中显示的任何内容。这种方法的优点是您可以向容器视图添加任何您想要的约束(例如容器和标签栏之间的底部填充)。

Container view with bottom padding to tab bar.

编辑:误解了问题

您只需检查内容视图是否能够设置SetContentInset:

- (void)setContentInset:(UIEdgeInset)insets {

    if ([self.contentView respondsToSelector:@selector(setContentInset:)]) {
        [self.contentView setValue:insets forKey:@"contentInset"];
    }
}