iOS Dev

UISlider, 解决两边空隙, 交互区域不足问题

2018-02-26  本文已影响38人  再好一点点

由于需要在播放器的设置里边创建一个slider 用来修改画面缩放比例, 发现当滑块滑动到两边的时候仍然存在一定的距离无法滑动到, 还有就是交互区域有点小, 滑块有时候会点击不到. 以下为解决方法

  -(CGRect)thumbRectForBounds:(CGRect)bounds trackRect:(CGRect)rect value:(float)value

    { 

    //修改滑块位置

    rect.origin.x = rect.origin.x - 10 ;

    rect.size.width = rect.size.width +20;

    //修改交互区域

    rect.origin.y = rect.origin.y - 10;

    rect.size.height = rect.size.height + 20;

    return CGRectInset ([super thumbRectForBounds:bounds trackRect:rect value:value], 10 , 10);

}

CGRect CGRectInset (

CGRect rect,

CGFloat dx,

CGFloat dy

);

该结构体的应用是以原rect为中心,再参考dx,dy,进行缩小或者放大.

UISlider还有这么几个方法可以重写

-(CGRect)trackRectForBounds:(CGRect)bounds

{

    bounds.origin.x=15;

    bounds.origin.y=bounds.size.height/3;

    bounds.size.height=bounds.size.height/5;

    bounds.size.width=bounds.size.width-30;

    return bounds;

}

-(CGRect)minimumValueImageRectForBounds:(CGRect)bounds;

-(CGRect)maximumValueImageRectForBounds:(CGRect)bounds;

上一篇下一篇

猜你喜欢

热点阅读