双重滑动解锁iPhone?

时间:2011-11-08 05:06:03

标签: iphone ios uislider

我希望iOS的控件从左向右滑动,类似于滑动解锁,但也从右向左滑动。我想要的东西与Android锁屏上的控件非常相似,从左到右滑动解锁并从右向左滑动。

enter image description here

  1. 通过子类化UISlider似乎最容易实现,对吧?我需要两个滑块,还是只需一个滑块?

  2. 是否已有任何开源版本?

  3. 以下是协议可能的样子:

    @interface DoubleSlider : UISlider
    
    typedef enum {
        DoubleSliderDirectionLeftToRight,
        DoubleSliderDirectionRightToLeft
    } DoubleSliderDirection;
    
    @end
    
    @protocol DoubleSliderDelegate <NSObject>
    
    @optional
    
    - (void)doubleSlider:(DoubleSlider *)doubleSlider
    didBeginSlidingWithDirection:(DoubleSliderDirection)direction;
    - (void)doubleSlider:(DoubleSlider *)doubleSlider
    didEndSlidingWithDirection:(DoubleSliderDirection)direction;
    
    @end
    

    相关

1 个答案:

答案 0 :(得分:0)

我想不出任何第三方版本。我觉得UISlider不是一个好的开始。如果我是你,我会改为UIScrollView的子类。

将其设置在屏幕底部,使其高度为44像素左右。将图像放在scrollView上的适当位置,就像您发布的图像一样。

然后,符合UIScrollViewDelegate并实施scrollViewDidScroll:方法,以跟踪用户向左或向右滑动的方式。在此方法中,检查UIScrollView的contentOffset属性。通过反复试验,您可以找到确切的内容偏移,您认为滑动滚动视图会触发您正在寻找的操作。

例如,如果contentOffset为50表示它是DoubleSliderDirectionLeftToRight,则可以触发委托回调,然后使用scrollRectToVisible:animated:

将scrollview“跳回”到原始位置

对于长篇大论和RTFM-ish的回答感到抱歉,但我没有代码支持这一点。这只是推测,但我不明白为什么这个解决方案不起作用:)。