任何人都知道自定义 TableView 标头对接行为的方法,或者这样做的框架?
具体来说,如果您打开 iPod 应用程序,您会注意到在您的艺术家列表中,信头停靠在顶部。然后,当您进一步向下滚动时,下一个标题会将第一个标题“向上推”。
这个小机制可以很有创意地使用:例如,假设您有一个充满内容的 tableview。内容有两种“模式”,因此您需要在表格视图顶部使用分段控件,这将切换单元格中内容的行为。然后,您还希望在屏幕顶部有一些装饰性的东西——比如徽标。
一种有趣的方法是使徽标成为标题,而分段控件则位于不同的标题中。logoHeader 将是第 0 节的标题,segmentedHeader 将是第 1 节的标题。第 0 节将没有单元格(或者如果 UITableView 对此尖叫,您可以添加 0px 或 1px 行),而第 1 节将包含您的所有内容。所以,有点像这样:
标志标题
段控制标头
内容
内容
内容
内容
内容
(SO 的格式化功能阻止了我的 ASCII 艺术作品看起来完全符合我的预期,但这很好。)
那么,这有什么作用呢?好吧,整个屏幕都响应滚动,因为它都是一个表格视图。但是,虽然 logoHeader 会离开屏幕,但 segControlHeader 会停靠在顶部,其余内容将在它后面传递。这只是一个有趣的对接效果,通过良好的设计和艺术品,您可以创造出整洁的效果。
现在,当您的设计师想要将其提升到一个新的水平时,问题就来了。“这应该停靠在这里,这应该停靠在这里,当您打开视图(如搜索栏)时,这个东西将开始部分隐藏在表格视图的边界之外”等。内容中的其他标题需要在那里并停靠, 等等。
无论如何,您可以使用这些对接效果进入一系列复杂性,并且几乎立即 tableview 变得不够用。有谁知道这样做的好方法,或者某种可以完成相同行为的框架?
也许最简单的方法是使用滚动视图,读取 contentOffset,然后在内容视图中相应地重新定位内容,MIN-ed 或 MAX-ed 到滚动视图中的特定范围?