UITableView Custom Scrollbar

£可爱£侵袭症+ 提交于 2019-12-19 08:13:46

问题


How can I create a custom scrollbar for a UITableView?

I want to remove the default one that pops up when tracking begins and that disappears when tracking ends. I want, instead, to have one similar to that in a computer program: (a) it's on the right side of the screen and permanently visible; (b) manually scrolling the bar will scroll the UITableView to the appropriate position; (c) scrolling the UITableView will scroll the scroll bar appropriately (without showing the default one that Apple provides).

The difficulty in (b) and (c) is that, as far as I know, Apple only provides methods to scroll to a particular row/section, but not to scroll to three-fourths of the way down a row. So, for example, if I want to scroll the scroll bar, the UITableView will subsequently only scroll to the top of a row/cell. The method I'm talking about is:

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

Has anyone implemented a custom scroll bar in their UITableView before? Or can someone help me figure out a way to solve the following problems:

  • scrolling to any point in the UITableView instead of to the start of a cell

  • removing the default scroll bar and preventing it from appearing

  • changing the scroll bar image/animation/whatever as the UITableView is scrolled

Thanks!



回答1:


UITableView inherits from UIScrollView, that means you can use any of the existing functions. In your case

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

should do the job. It moves the table to any position you want.

To disable the existing scroll indicator, use

table.showsVerticalScrollIndicator = NO;

And to add your own, just add your custom view!



来源:https://stackoverflow.com/questions/2213994/uitableview-custom-scrollbar

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!