在UITableVewController中将UIView放在UITableView前面

时间:2014-11-08 16:55:53

标签: ios uitableview uiview

我试图在我的UITableViewController中将UIView放在UITableView前面。 UIView最初设置为隐藏。我正在制作它,以便如果数据源中没有任何项目......那么显示UIView并说“对不起没有项目" ...”这样就可以了项目。但是,UITableViewController一次显示6个项目,每当少于6个项目(但大于0)时,它允许用户向下滚动,如果它们向下滚动,则显示我的UIView。我怎样才能防止这种情况发生?我认为我的代码只针对整个视图控制器保持每页真实,但不确定如何修复它。奇怪的是,Pagination没有启用。

3 个答案:

答案 0 :(得分:1)

每当我需要做这样的事情时,我就选择了2个选项之一:

  1. 使用添加了UIViewController的常规UITableView。这样,您就可以将UIView(或UILabel}添加到UIViewController的{​​{1}}。然后,当您没有要显示的项目时,可以将view的{​​{1}}设置为零,并且可以看到标签。
  2. 创建一个原型alpha,显示您希望用户看到的“无项目”消息。

答案 1 :(得分:1)

我的一个应用程序确实成功完成了这项工作。 UIView需要是UITableView的对等体(即在同一父视图内)并且在它前面(在父视图的子视图列表中)之后。

您的故事板应如下所示:

Scene
  ViewController
    Top Layout Guide
    Bottom Layout Guide
    View
      Table View
      View  // the view which covers the table view.

使用约束使表格相对于其超视图成为固定大小,并使封面视图与表格大小相同并与其对齐,因此它在可见时始终覆盖它。

听起来你不小心将封面视图放在桌子内或背后或其他东西上。

答案 2 :(得分:0)

如果您使用的是UITableView控制器,则专门找到解决方案。如果您的数据集为空,请使用以下代码:[self.tableView setSeparatorInset:UIEdgeInsetsZero];。这将删除空行的外观,并使您的UITableView看起来像一个空的UIView。然后,只需自定义您的视图,使其达到您想要的效果。对于我的应用程序,我添加了一个标签作为UITableView的子视图(如果数据集为空)给我的"没有项目"消息。