Swift 如何添加浮动在UITableView上的按钮
我有一个显示帖子列表的TableView。我想添加一个浮动在TableView上的按钮,当用户滚动帖子时,该按钮不会移动。该按钮将允许用户发布。我如何实现这一点?我似乎无法将superview添加到我的tableview中 Google Plus应用程序也有类似的功能,但如果你没有该应用程序,它也会出现这种行为。按钮位于左下角Swift 如何添加浮动在UITableView上的按钮,swift,uitableview,Swift,Uitableview,我有一个显示帖子列表的TableView。我想添加一个浮动在TableView上的按钮,当用户滚动帖子时,该按钮不会移动。该按钮将允许用户发布。我如何实现这一点?我似乎无法将superview添加到我的tableview中 Google Plus应用程序也有类似的功能,但如果你没有该应用程序,它也会出现这种行为。按钮位于左下角 谢谢 更好的方法是创建UIViewController(而不是UITableViewController)并将其添加到UITableView和UIButton。在这种情况
谢谢 更好的方法是创建
UIViewController
(而不是UITableViewController
)并将其添加到UITableView
和UIButton
。在这种情况下,可以调整情节提要中的所有视图并设置适当的约束
当我们使用UIViewController
并添加tableView和按钮时,我们可以在InterfaceBuilder中进行大多数界面设置
当然,您可以将按钮添加到
UINavigationController
视图,如果UITableViewController
嵌入,或者添加到keyWindow
,但这是一种更糟糕的方法。有几种方法可以在不丢失表视图控制器的情况下处理此问题
为表视图控制器使用容器视图
如果您使用的是故事板,请使用按钮和容器视图设置视图控制器。在该容器视图中,具有表视图控制器。您可以使用委派、通知或键值观察来保持两个视图控制器同步
将按钮添加到窗口而不是表视图控制器
如果您只想让按钮在表视图上浮动,那么可以将按钮添加到窗口而不是视图中。这必须在运行时完成。我建议使用按钮创建一个自定义标题视图,并将该视图用于表的
视图ForHeaderInSection
。这样,您可以将控制器保持为UITableViewController
而不是UIViewController
,并且在用户滚动时它将保持在顶部
请注意,如果表有多个部分,则需要调整数据源/委托逻辑,因为每个部分都有一个死区。我找到了答案。显然,Interface Builder中存在一个不允许在UITableView上放置UIButton或UIView的错误。解决方法是将按钮或视图拖动到文档大纲中,并将其放置在场景的最底部。完成此操作后,可以将该按钮放在UITableView的前面 最后,在添加自动布局约束之前,按钮或图像不会出现。执行此操作后,按钮或图像将浮在桌子上,并在用户滚动时保持固定
谢谢 另一个选项是将按钮作为子视图添加到表视图中,并在
scrollViewDidScroll:
上更新其转换。这种方式不好,因为在这种情况下,按钮将“跳舞”,而表视图将scrolling@Igor每当内容偏移量更改时,在呈现之前调用scrollViewDidScroll。如果你的数学是正确的,你将永远不会看到视图“跳舞”,如果你这样做了,你就做错了。如果是这种情况,可以将按钮添加到第一个(或多个,如果需要)节标题中。例如,使用TableViewController比使用tableView的ViewController有一些优势,没有TableViewController,就不能有静态表。使用容器来包含TableViewController是一个更好的主意。将其添加到导航控制器或窗口是坏主意。@EmilioPelaez,我不同意你的看法。当我们使用UIViewController
并添加tableView和按钮时,我们可以在InterfaceBuilder
中进行大多数界面设置。可根据不同的屏幕尺寸进行直观方便的调整。如果需要带有静态单元格的tableView,可以添加容器视图并嵌入其中UITableViewConrtoller
。同样,大部分设置将在InterfaceBuilder
中完成。您建议的方式不好(scrollViewDidScroll:中的调整按钮),因为在这种情况下,按钮将“跳舞”,而tableView将滚动。UITableViewController
在一种情况下具有优势-如果您只使用UITableView
,而不向其添加其他子视图。添加子视图会带来不便和错误,因为UITableViewController
不适用于此(想想,为什么不能在IB中将子视图添加到UITableView?)。浮动操作按钮不是Apple UI模式。。。只是说