博客> UISlider, 解决两边空隙, 交互区域不足问题
UISlider, 解决两边空隙, 交互区域不足问题
2018-07-18 18:52 评论:0 阅读:571 我耐你
滑动 性能优化 UISlider

由于需要在播放器的设置里边创建一个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;
收藏
1
sina weixin mail 回到顶部