4

有没有办法在 UIScrollView 中自定义滚动指示器(垂直或水平)。例如,更改它在滚动视图中的颜色或位置。

4

1 回答 1

5

首先,您必须在 Interface Builder 中取消选中 showVerticalIndicator 和 showHorizo​​ntallIndicator。

然后在viewDidLoad方法中添加:

[super viewDidLoad];    
self.scrollViewBarImgView = [[UIImageView alloc] init];
UIImage *imgBar = [UIImage imageNamed:@"scroller.png"];
[self.scrollViewBarImgView setImage:imgBar];
CGRect frame = scrollViewBarImgView.frame;
frame.size.width = 8;
frame.size.height = 60;
frame.origin.x = 312;
frame.origin.y = 0;
[self.scrollViewBarImgView setFrame:frame];

[self.tableView addSubview:scrollViewBarImgView];

然后在- (void)scrollViewDidScroll方法中:

CGPoint offset = scrollView.contentOffset;
CGRect frame = self.scrollViewBarImgView.frame;

float fact = (cellHeight*numberOfRow+ indicatorBarHeight) / tableViewHeight;

frame.origin.y = offset.y + (offset.y/fact);

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.1];
[self.scrollViewBarImgView setFrame:frame];
[UIView commitAnimations];

这对我有用。

于 2014-07-07T11:10:22.530 回答