美文网首页
UISlider拖拽的按钮增加命中率问题

UISlider拖拽的按钮增加命中率问题

作者: 夜半醒 | 来源:发表于2020-08-18 18:50 被阅读0次

    最近做项目, 遇到 UIScrollView 上添加 UISlider的问题.

    • 第一点是 UIScrollView 的手势优先级大于 UISlider导致 Slider 滑动困难
    • 第二点是 UISlider 的拖拽按钮较小, 命中率奇低.

    像我这种这么注重体验的人是绝对不能忍的.


    先说 UIScrollView 上添加 UISlider 问题

    针对 UIScollView 的手势优先问题解决方式:
    使用子类重写手势方法, 就行, 原因是 UIScrollView 在用户触摸时会有150ms 的一个判断如果用户没有做出其他手势时 才会让 Slider 成为响应者

    - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
       UIView *view = [super hitTest:point withEvent:event];
       if([view isKindOfClass:[UISlider class]]) {
           self.scrollEnabled = NO;
       } else {
          self.scrollEnabled = YES;
       }
       return view;
    }
    

    UISlider 的拖拽较小 其实有很多解决方式. 但是网上很多都不管用, 所以自己写个笔记记录一下也帮助一下需要解决问题的小伙伴.

    我使用的是 用一张宽高45 * 45 的图片 配合重写 UISlider 的方法的方式

    static CGFloat sliderSize = 45;
    @implementation ArtPlayerSlider
    - (CGRect)thumbRectForBounds:(CGRect)bounds trackRect:(CGRect)rect value:>(float)value {
    
       rect.origin.x = rect.origin.x - sliderSize / 2;
       rect.size.width = rect.size.width + sliderSize;
       return [super thumbRectForBounds:bounds trackRect:rect value:value];
    }
    @end
    
    
    这是向 UI 小姐姐要得拖拽的图片 宽高比 45 * 45

    相关文章

      网友评论

          本文标题:UISlider拖拽的按钮增加命中率问题

          本文链接:https://www.haomeiwen.com/subject/mwbkjktx.html