UINavigationBar下的多个UITableView

Posted

技术标签:

【中文标题】UINavigationBar下的多个UITableView【英文标题】:Multiple UITableViews under UINavigationBar 【发布时间】:2013-11-21 14:59:57 【问题描述】:

我正在使用带有部署目标 5.1 的 ios 7 使用 Storyboards 开发 iOS 应用程序。

我在一个视图控制器中有 4 个UITableViews,它们都有 1/3 的宽度和 100% 的屏幕高度。一个总是在屏幕外(他们不时地左右移动)。我希望它们显示在UINavigationController 提供的UINavigationBar 下。

我已经在 Storyboard 中设置了所有内容,但是 XCode 仅对最左侧的表格进行了格式化(格式化是指UITableView 的内容从UINavigationBar 的末尾开始。其他表格开始在UINavigationBar 下显示内容。

我没有任何设置表格的代码,我的视图控制器中只有UITableViewControllerDataSourceUITableViewControllerDelegate 方法。

正如您在屏幕截图中看到的那样,它甚至没有显示原型表格单元格,因为它们位于导航栏下方。

如何设置此权限(在 Storyboard 中或以编程方式)?

我希望内容显示在导航栏下方,但也希望从导航栏下方开始,并且只有在向下滚动时才会进入。

【问题讨论】:

可以发布一些屏幕截图吗? 屏幕截图应该是故事板和正在运行的应用程序。另外,你有什么代码(如果有的话)来设置视图和滚动它们? 图片是这样的,ios7之前的版本也是这样的? @Ilario 不,在 iOS 【参考方案1】:

看到这个问题只有ios7,我可以尝试提出一个选项:

-第一:

单击包含 UITableView 的 UIViewController 上的故事板,您可以看到我上传的图像,取消选中“Extend Edges”旁边的“under top bar”。

如果这不起作用,(这是为了不使半透明的NavigationBar)尝试:

-(void)viewWillAppear:(BOOL)animated 

  NSString *ver = [[UIDevice currentDevice] systemVersion];
int ver_int = [ver intValue];

if (ver_int < 7) 

  
else 
      self.navigationController.navigationBar.translucent = NO;
  

【讨论】:

与@Evgen Bodunov 的答案相同,它不能解决我的问题。我确实希望内容出现在条形下方,但也希望从条形下方开始并仅在向下滚动时才出现在条形下方。 @CrazyYoghurt 哦,我没有意识到你希望导航栏是半透明的..【参考方案2】:

尝试在您的视图控制器中使用以下代码。

if ([self respondsToSelector:@selector(edgesForExtendedLayout)])
    self.edgesForExtendedLayout = UIRectEdgeNone;

或者把透明视图放在table.tableHeaderView中。该视图的高度等于导航栏的高度。

【讨论】:

当然可以,但不是我想要的方式。我确实希望内容出现在条形下方,但也希望从条形下方开始,并且仅在向下滚动时才出现在下方。 我在我的应用程序中检查了它,导航栏不透明,但我可以清楚地看到它下面的模糊单元格。 太棒了,将透明视图放在第一个单元格的顶部可以完美地工作,尽管它是令人讨厌的解决方法。此视图的高度应为64,并且必须记住在情节提要的iOS 6/7 Details 中设置-64 ΔHeight

以上是关于UINavigationBar下的多个UITableView的主要内容,如果未能解决你的问题,请参考以下文章

在 popViewControllerAnimated 之后 UINavigationBar 下的 UITableView

UITableViewController 中的 UINavigationBar 下的 UISearchbar 不在标题中

IOS7上UINavigationBar下的UIView

UINavigationBar 未显示,尝试了多个修复

从多个视图向 UINavigationBar 添加和删除 UIBarButtonItems

为啥 self.navigationController pushViewController 不起作用?