1

在 Objective-c 和 Swift 中都有很多类似我的问题,询问如何将 UIToolbar 锁定到 UITableViewController 的顶部,我将添加到该列表中。但是,其他人没有回答我的问题。我需要将它锁定在视图控制器的顶部,以便程序不会将其视为单元格,因此它不会向下移动,而是锁定在顶部。

我发现的所有其他答案都希望我这样做

(a) 在 UINavigationViewController 中嵌入 UITableViewController

或者

(b) 使用带有 UITableView 的 UIViewController


我不想做其中任何一个。
我想保留一个 UITableViewController——不要用 UIViewController 和 UITableView 替换它——而且我不想使用 UINavigationViewController——我试图不这样做,因为它会导致应用程序的其余部分出现大量问题(可以修复,但我不想这样做)。

4

1 回答 1

0

你所要求的是不可能的。UITableViewController 的根视图是一个 UIScrollView。您在 UITavleViewController 中添加为子视图的每个视图都必须是该滚动视图的一部分,因此将随之滚动。

要使其工作,您必须采用您提到的选项之一(移动到带有表视图作为子视图的 UIViewController 可能会在您的应用程序中造成最小的中断)。

我能想到几个不合理的解决方案: - 在 UITableViewController 中实现 scrollviewDidScroll 委托方法,并不断在滚动视图中重新定位游览工具栏,使其看起来始终位于顶部(工具栏可能会抖动并且看起来很糟糕) - 在你的整个应用程序顶部创建一个新的 UIWindow 来保存工具栏(不要这样做,这是一个糟糕的主意)。

于 2015-09-06T14:05:05.970 回答