我有一个显示帖子列表的TableView。我想添加一个漂浮在TableView上的按钮,当用户滚动帖子时按钮不会移动。该按钮将使用户能够发布。我该如何实现呢?我似乎无法在我的tableview中添加superview。
Google Plus应用程序执行类似操作,但如果您没有应用程序,则official website也会出现此行为。该按钮位于左下方。
谢谢!
答案 0 :(得分:2)
有几种方法可以处理这种情况,而无需丢失表视图控制器。
如果您使用的是故事板,请使用按钮和容器视图设置视图控制器。在该容器视图中,具有表视图控制器。您可以使用委派,通知或键值观察来保持两个视图控制器同步。
如果您只是希望按钮只是浮动在表视图上,那么您可以将按钮添加到窗口而不是视图。这必须在运行时完成。
答案 1 :(得分:1)
更好的方法是创建UIViewController
(不是UITableViewController
)并添加UITableView
和UIButton
。在这种情况下,您可以调整Storyboard中的所有视图并设置适当的约束。
当我们使用UIViewController
并添加tableView和按钮时,我们可以在InterfaceBuilder中执行大部分界面设置。
当然,您可以向UINavigationController
视图添加按钮,如果UITableViewController
嵌入,或keyWindow
,但这是更糟糕的方式。
答案 2 :(得分:0)
我建议您使用该按钮创建自定义标题视图,并将该视图用于您的表viewForHeaderInSection
。这样,您可以将控制器保持为UITableViewController
而不是UIViewController
,并在用户滚动时保持在顶部。
请注意,如果您的表包含多个部分,则需要调整数据源/委托逻辑,因为每个部分都有一个deader。
答案 3 :(得分:0)
我找到了答案。显然,Interface Builder中存在一个错误,它不允许在UITableView上面放置UIButton或UIView。解决方法是将按钮或视图拖动到文档大纲中,并将其放在场景的最底部。完成后,您可以将该按钮放在UITableView前面。
最后,在添加Autolayout Constraints之前,按钮或图像不会显示。执行此操作后,按钮或图像将浮动在桌面上,并在用户滚动时保持固定。
谢谢!