2010-02-06 295 views
5

如何为UITableView创建自定义滚动条?UITableView自定义滚动条

我想删除在跟踪开始时弹出的默认弹出窗口,并且在跟踪结束时消失。相反,我想要一个类似于计算机程序中的程序:(a)它位于屏幕的右侧并永久可见; (b)手动滚动栏将滚动UITableView到适当的位置; (c)滚动UITableView将适当地滚动滚动条(不显示Apple提供的默认值)。 (b)和(c)中的困难在于,据我所知,Apple只提供滚动到特定行/部分的方法,但不滚动到连续行向的四分之三。所以,例如,如果我想滚动滚动条,UITableView随后将只滚动到行/单元格的顶部。我说的方法是:

- (void)scrollToRowAtIndexPath:(NSIndexPath *)indexPath atScrollPosition:(UITableViewScrollPosition)scrollPosition animated:(BOOL)animated 

有没有人在他们的UITableView实现了自定义滚动条过吗?或者有人可以帮我想出一个办法来解决以下问题:

  • 滚动在UITableView的,而不是给小区

  • 删除默认的滚动条,并阻止它开始的任何点出现

  • 改变滚动条图像/动画/不管作为UITableView的滚动

临屋NKS!


+0

为什么你会想要这种行为?我无法想象这会比表格视图右侧的部分索引更好(如在“通讯录”应用程序中所见)。它也不符合苹果的HIG,并可能会让你的应用在App Store中被拒绝。 – MrMage 2010-02-06 17:56:49

+1

部分在这里回答“http://stackoverflow.com/questions/7976593/change-width-and-colour-of-scroll-bar-in-uitableview-iphone” – alekhine 2011-11-10 11:18:52

回答

2

UITableView继承自UIScrollView,这意味着您可以使用任何现有的函数。在你的情况

- (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated

应该做的工作。它将桌子移动到你想要的任何位置。

禁用现有的滚动指示,使用

table.showsVerticalScrollIndicator = NO; 

,并添加你自己的,只需添加自定义视图!