我试图在我的UITableViewController中将UIView放在UITableView前面。 UIView最初设置为隐藏。我正在制作它,以便如果数据源中没有任何项目......那么显示UIView并说“对不起没有项目" ...”这样就可以了项目。但是,UITableViewController一次显示6个项目,每当少于6个项目(但大于0)时,它允许用户向下滚动,如果它们向下滚动,则显示我的UIView。我怎样才能防止这种情况发生?我认为我的代码只针对整个视图控制器保持每页真实,但不确定如何修复它。奇怪的是,Pagination没有启用。
答案 0 :(得分:1)
每当我需要做这样的事情时,我就选择了2个选项之一:
UIViewController
的常规UITableView
。这样,您就可以将UIView
(或UILabel
}添加到UIViewController
的{{1}}。然后,当您没有要显示的项目时,可以将view
的{{1}}设置为零,并且可以看到标签。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的子视图(如果数据集为空)给我的"没有项目"消息。