iOS自定义UIScrollView的滚动条实例代码

2020-01-18 21:43:56于海丽
经验,让成功有迹可循n• 知识传承力:资深运营的价值,不是个人优秀,而是让人人优秀。", @"• 数据运营体系的构成n• 数据规范与平台n• 数据运营体系结构n• 数据数据平台构建n• 核心数据指标n• 移动端产品数据埋点范例n• 数据需求指标n• 产品关键数据n• 数据运营体系的构成", ]; NSInteger contentCount=textDesArr.count; for (NSInteger i = 0; i <contentCount; i++) { UILabel *textDesLabel=[[UILabel alloc] initWithFrame:CGRectMake(10+190 *i,0, 180 , 233 )]; [_scrollView addSubview:textDesLabel]; textDesLabel.textColor=[UIColor colorWithRed:0.49 green:0.49 blue:0.49 alpha:1.00]; textDesLabel.font = [UIFont systemFontOfSize:12 ]; textDesLabel.text = textDesArr[i]; textDesLabel.numberOfLines = 0; textDesLabel.layer.borderWidth = 0.5; textDesLabel.layer.borderColor = [UIColor colorWithRed:0.91 green:0.91 blue:0.91 alpha:1.00].CGColor; textDesLabel.backgroundColor = [UIColor whiteColor]; } //scrollView的滚动范围 _scrollView.contentSize = CGSizeMake(190*contentCount+10, 0); }

三、在UIScrollView的代理滚动方法中修改滚动条的当前位移:

这里是以自定义横向滚动条为例,竖向滚动条也是一样的原理。


-(void)scrollViewDidScroll:(UIScrollView *)scrollView{
  [UIView animateWithDuration:0.5 animations:^{

    CGPoint offset = scrollView.contentOffset;

    // scrollView的当前位移/scrollView的总位移=滑块的当前位移/滑块的总位移
    //    offset/(scrollView.contentSize.width-scrollView.frame.size.width)=滑块的位移/(slideBackView.frame.size.width-sliderView.frame.size.width)
    //    滑块距离屏幕左边的距离加上滑块的当前位移,即为滑块当前的x

    CGRect frame=sliderView.frame;

    frame.origin.x=15 + offset.x*(slideBackView.frame.size.width-sliderView.frame.size.width)/(scrollView.contentSize.width-scrollView.frame.size.width);

    sliderView.frame = frame;



  }];
}

这样,自定义的滚动条就实现了。效果如图

uiscrollview,滚动条,ios,自定义滚动条,自定义滚动条样式

另外,在这里提一下阴影的使用方法,有时候我们需要加一些阴影效果,怎么加呢?

主要用到layershadowColor(阴影颜色) 、shadowOffset ()阴影大小、hadowOpacity (阴影透明度)、shadowRadius(阴影圆角)这几个属性

如:


    _scrollView.layer.shadowColor = [UIColor redColor].CGColor;//shadowColor阴影颜色
    _scrollView.layer.shadowOffset = CGSizeMake(0,0);//shadowOffset阴影偏移,x向右偏移,y向下偏移
    _scrollView.layer.shadowOpacity = 0.5;//阴影透明度,默认0
    _scrollView.layer.shadowRadius = 3;//阴影半径,默认3