在iOS上增加手勢鎖屏 解鎖功能

2021-06-09 20:28:16 字數 2364 閱讀 7578

在一些涉及個人隱私的場景下,尤其是當移動裝置包含太多私密資訊時,為使用者的安全考慮是有必要的。

桌面版的qq在很多年前就考慮到使用者離開電腦後隱私洩露的危險,提供了「離開電腦自動鎖定」或者「閒置鎖定」等類似功能,具體我也忘了。

而在iphone版的qq上,也提供了手勢鎖的功能。如下圖:

具體的**實現如下:

//

// viewcontroller.m

// gesturelock

//// created by jason lee on 12-9-26.

//#import "viewcontroller.h"

#define lock_point_tag 1000

@inte***ce viewcontroller ()

@property (nonatomic, strong) uiimageview *imageview;

@property (nonatomic, assign) cgpoint linestartpoint;

@property (nonatomic, assign) cgpoint lineendpoint;

@property (nonatomic, strong) nsmutablearray *buttonarray;

@property (nonatomic, strong) nsmutablearray *selectedbuttons;

@property (nonatomic, assign) bool drawflag;

@property (nonatomic, strong) uiimage *pointimage;

@property (nonatomic, strong) uiimage *selectedimage;

@end

@implementation viewcontroller

- (void)dealloc

- (void)viewdidload

- (void)didreceivememorywarning

#pragma mark - trace touch point

- (void)touchesbegan:(nsset *)touches withevent:(uievent *)event

[self.selectedbuttons addobject:btn];

[btn setimage:self.selectedimage forstate:uicontrolstatenormal];}}

}}- (void)touchesmoved:(nsset *)touches withevent:(uievent *)event

}if (!btncontained) }}

self.imageview.image = [self drawunlockline];

}}- (void)touchesended:(nsset *)touches withevent:(uievent *)event

#pragma mark - create lock points

- (void)createlockpoints

; [self.imageview addsubview:btn];

btn.userinteractionenabled = no;

btn.tag = lock_point_tag + i * 3 + j;

if (!self.buttonarray)

[self.buttonarray addobject:btn];}}

}#pragma mark - draw line

- (uiimage *)drawunlockline

cgcontextaddlinetopoint(context, self.lineendpoint.x, self.lineendpoint.y);

cgcontextstrokepath(context);

image = uigraphicsgetimagefromcurrentimagecontext();

uigraphicsendimagecontext();

return image;

}#pragma mark -

- (void)outputselectedbuttons

}@end

jason lee @ hangzhou

微博:@思禽飲霜

在iOS上增加手勢鎖屏 解鎖功能

在一些涉及個人隱私的場景下,尤其是當移動裝置包含太多私密資訊時,為使用者的安全考慮是有必要的。桌面版的qq在很多年前就考慮到使用者離開電腦後隱私洩露的危險,提供了 離開電腦自動鎖定 或者 閒置鎖定 等類似功能,具體我也忘了。而在iphone版的qq上,也提供了手勢鎖的功能。如下圖 具體的 實現如下 ...

iOS開發之應用內檢測手機鎖屏,解鎖狀態

1.程式在前台,這種比較簡單。直接使用darwin層的通知就可以了 import staticvoidscreenlockstatechanged cfnotificationcenterrefcenter,void observer,cfstringrefname,constvoid object...

iOS開發 檢測程式在前台和後台鎖屏解鎖的狀態

1 程式在前台判斷是否鎖屏或解鎖。判斷方法 直接使用darwin層的通知就可以。import define notificationlock cfstr define notificationchange cfstr define notificationpwdui cfstr static voi...