识别屏幕锁定 n 解锁 ios 的滑动模式
Posted
技术标签:
【中文标题】识别屏幕锁定 n 解锁 ios 的滑动模式【英文标题】:Recognizing the Swiping pattern for screen lock n unlock ios 【发布时间】:2014-05-27 16:05:13 【问题描述】:我想创建一个用于锁定和解锁屏幕的滑动模式(在不松开手指的情况下滑动)。如何使用 UISwipeGestureRecognizer 做到这一点。我想保存它并在我再次尝试登录时匹配它。我怎样才能保存它?作为图像或其他东西?请帮我解决这个问题。 谢谢。
【问题讨论】:
【参考方案1】:android Pattern Lock on iPhone for ios
A Pattern Lock for iOS similar to the one in Android
【讨论】:
有没有什么办法可以实现免手锁的屏幕锁。我的意思是我们画的任何东西(可能是圆形、之字形、线条等)都应该是我们的锁。我们该怎么做?【参考方案2】:你说的“模式”是什么意思,你到底想保存什么?
您应该使用UIPanGestureRecognizer
,因为滑动只是一种快速翻转手势,而平移是一种受控运动,您可以跟踪整个距离。
这是我的处理方式,从右向左移动(与锁定屏幕相反):
- (IBAction)slide:(UIPanGestureRecognizer *)gesture
CGPoint translate = [gesture translationInView:gesture.view];
translate.y = 0.0; // Just doing horizontal panning
if (gesture.state == UIGestureRecognizerStateChanged)
// Sliding left only
if (translate.x < 0.0)
self.slideLane.frame = [self frameForSliderLabelWithTranslate:translate];
else if ([gesture stoppedPanning])
if (translate.x < 0.0 && translate.x < -(gesture.view.frame.size.width / 2.5))
// Panned enough distance to unlock
else
// Movement was too short, put it back again
NSTimeInterval actualDuration = [self animationDuration:0.25 forWidth:gesture.view.frame.size.width withTranslation:(-translate.x)];
[UIView animateWithDuration:actualDuration delay:0.0 options:UIViewAnimationOptionCurveEaseInOut animations:^
self.slideLane.frame = [self frameForSliderLabelWithTranslate:CGPointZero];
completion:^(BOOL finished)
];
- (CGRect)frameForSliderLabelWithTranslate:(CGPoint)translate
return CGRectMake(translate.x, self.slideLane.frame.origin.y, self.slideLane.bounds.size.width, self.slideLane.bounds.size.height);
因为我不在乎手势停止的原因,所以我添加了这个类别以使 else-if 子句更具可读性。但它是可选的:
@implementation UIPanGestureRecognizer (Stopped)
- (BOOL)stoppedPanning
return ( self.state == UIGestureRecognizerStateCancelled
|| self.state == UIGestureRecognizerStateEnded
|| self.state == UIGestureRecognizerStateFailed);
@end
理想情况下,您应该考虑运动的速度,因为快速朝正确的方向轻弹就足够了。在我的例子中,我希望用户移动方块,无论多快。
【讨论】:
存储它意味着,一旦我将用于锁定和解锁的图案放入我必须确认它。为此我需要保存和匹配吗? 啊,明白了。你的意思是安卓锁屏,不是iOS锁屏。 No.. 对于 iPhone,我正在尝试创建锁定屏幕。这几乎类似于android屏幕。 有没有什么办法可以实现免手锁的屏幕锁。我的意思是我们画的任何东西(可能是圆形、之字形、线条等)都应该是我们的锁。我们该怎么做?以上是关于识别屏幕锁定 n 解锁 ios 的滑动模式的主要内容,如果未能解决你的问题,请参考以下文章