![240](https://cdn2.jianshu.io/assets/default_avatar/8-a356878e44b45ab268a3b0bbaaadeeb7.jpg?imageMogr2/auto-orient/strip|imageView2/1/w/240/h/240)
翻了下老邏輯棺禾,大約是記住了當前調用過setFrame的UIStatusBar的實例锐借,+load里dispatch_once保證了是首個調用者灼芭,避免抓到上層consumer手動生成UIStatusBar被抓到
順便阿里社招要不要了解一下
+ (UIView *)statusBarInstance_ComOpenThreadOTScreenshotHelper
{
return statusBarInstance;
}
+ (void)load
{
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
Class statusBarClass = NSClassFromString(@"UIStatusBar");
[ComOpenThreadOTScreenshotHelperSwizzleHelper swizzClass:statusBarClass
selector:@selector(setFrame:)
selector:@selector(setFrameIntercept_ComOpenThreadOTScreenshotHelper:)];
[ComOpenThreadOTScreenshotHelperSwizzleHelper swizzClass:statusBarClass
selector:NSSelectorFromString(@"dealloc")
selector:@selector(deallocIntercept_ComOpenThreadOTScreenshotHelper)];
});
}
- (void)setFrameIntercept_ComOpenThreadOTScreenshotHelper:(CGRect)frame
{
[self setFrameIntercept_ComOpenThreadOTScreenshotHelper:frame];
statusBarInstance = self;
}
- (void)deallocIntercept_ComOpenThreadOTScreenshotHelper
{
statusBarInstance = nil;
[self deallocIntercept_ComOpenThreadOTScreenshotHelper];
}
關于代碼截屏帶狀態(tài)欄的問題昨天產(chǎn)品經(jīng)理告訴我播聪,希望能實現(xiàn)仿網(wǎng)易嚴選那樣氮双,可以捕捉到用戶的截屏操作效诅,然后進行截屏分享的小功能胀滚。在實現(xiàn)的過程中遇到的最大問題就是截屏為什么沒有狀態(tài)欄趟济??咽笼?然后各種查找顷编,資料...