2011-12-21 87 views
0

好吧,所以主题为自己说话 - 我需要更改默认滚动条与我的自定义图像。我一直在寻找一种解决方案,不需要你编写你自己的ScrollView类,或者使用黑客来创建UIView和滚动条图像,并在滚动时重新定位它。自定义UIScrollView的滚动条

我喜欢的一个解决方案是使用简单的UIScrollView类别,并以UIScrollView的子视图的形式访问滚动条:http://leonov.co/2011/04/uiscrollviews-scrollbars-customization/#comment-7909由于某种原因,这个不适用于我。当我创建UIScrollView并获取其子视图数组时,只有手动添加到scrollview的视图才显示在那里。我无法访问通过子视图数组迭代的滚动条。例如,此代码:

UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(10,10,100,100)]; 
scrollView.userInteractionEnabled = YES;  
scrollView.bounces = NO; 
scrollView.showsHorizontalScrollIndicator = YES; 
NSLog(@"Subviews count is %d", [[scrollView subviews] count]); 

将记录“子视图计数为0”。或者,如果我将X元素添加到滚动视图,则“子视图计数为X”。有任何想法吗?

回答

1

UIScrollbar滚动视图仅在视图滚动时创建。当视图停止滚动时,它们会再次被移除。这可能就是为什么你无法找到你的类别。

你可以将你的滚动视图的子视图穿越代码放到了滚动委托的scrollViewDidScroll方法,这将意味着它得到每当视图滚动执行。

我不禁感到,尽管这是一个可怕的和不必要的破解,你最好隐藏滚动条并使用委托方法自己实现它们,以确定何时显示和隐藏自定义滚动条视图和contentOffset属性来确定在哪里放置它。