如何修复UITableView中的标题和第一行

时间:2011-10-07 17:04:33

标签: iphone objective-c uitableview

我是新尝试使用Objective c创建一些应用程序,所以我想使用uitableview,但我不知道我怎么能得到这个。

我尝试做的事情就像你在电子表格中做的那样你有一个固定的标题和第一列

因此,当垂直滚动uitableview时,标题将在表格顶部保持可见,行将更改

最后,当您在水平方向滚动时,该行的第一个单元格将保持可见,并将根据您滚动uitableview的方式更改标题

我希望你能给我一个如何理解这一点的想法,因为我不知道如何做到这一点,我也没有很多使用这种编程语言的经验。

谢谢!

4 个答案:

答案 0 :(得分:1)

在未分组的表格中,当表格滚动时,部分标题会“粘贴”在表格的顶部。您可以通过委托方法UIView为节标题提供自定义–tableView:viewForHeaderInSection:(或其子类)。此标头视图可以通过编程方式即时创建或从NIB文件加载。无论哪种方式,你可以让它包含你想要的任何东西,甚至在应用程序运行时更新它(前提是你已经通过ivars或类变量访问了标题视图中包含的视图。)如果你走这条路,你会想要聪明地分配包含这个视图的资源,这样你就不会经常分配新的资源了!可以经常调用此委托方法,除了第一次调用之外,您只需返回先前创建的(但在必要时更新)标题视图。

答案 1 :(得分:0)

UITableView并非旨在实现此目的,但我相信您最终可以找到某种方式。

我的方法是在UIView nib中使用某种固定的UILabel(可能是UIViewController's等)作为标题/锁定单元格,并添加{{ 1}}在那之下。您无法使用UITableView,但必须在UITableViewController中实施delegatedataSource方法,并使用UIViewController来提取来自tableView的手势并更新其他视图。

答案 2 :(得分:0)

我通过添加模仿表格中第一个单元格的UIView来完成此操作。在我的情况下,我使用的是UITableViewCell的子类,但这可能不相关。通常,此视图以alpha为0隐藏。

如果您查看控制器是UITableView的委托,那么它也将是继承的UIScrollView的委托。因此,在视图控制器中,您可以实现scrollViewDidScroll。当scrollView的contentOffset为正数时,我将自定义视图的alpha设置为1(我也会进行一些小尺寸调整以确保完美匹配),当contentOffset返回0或负数时,我将alpha重置为0。

答案 3 :(得分:0)

将数组中的第一行数据置于标题的第一行,将文本与属性文本一起以粗体显示,虽然不会发粘,但您会有标题...