// // YYFPSLabel.m // YYKitExample // // Created by ibireme on 15/9/3. // Copyright (c) 2015 ibireme. All rights reserved. // #import "YYFPSLabel.h" #import #import "YYWeakProxy.h" #import #define kSize CGSizeMake(55, 20) @implementation YYFPSLabel { CADisplayLink *_link; NSUInteger _count; NSTimeInterval _lastTime; UIFont *_font; UIFont *_subFont; NSTimeInterval _llll; } - (instancetype)initWithFrame:(CGRect)frame { if (frame.size.width == 0 && frame.size.height == 0) { frame.size = kSize; } self = [super initWithFrame:frame]; self.layer.cornerRadius = 5; self.clipsToBounds = YES; self.textAlignment = NSTextAlignmentCenter; self.userInteractionEnabled = NO; self.backgroundColor = [UIColor colorWithWhite:0.000 alpha:0.700]; _font = [UIFont fontWithName:@"Menlo" size:14]; if (_font) { _subFont = [UIFont fontWithName:@"Menlo" size:4]; } else { _font = [UIFont fontWithName:@"Courier" size:14]; _subFont = [UIFont fontWithName:@"Courier" size:4]; } _link = [CADisplayLink displayLinkWithTarget:[YYWeakProxy proxyWithTarget:self] selector:@selector(tick:)]; [_link addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSRunLoopCommonModes]; return self; } - (void)dealloc { [_link invalidate]; } - (CGSize)sizeThatFits:(CGSize)size { return kSize; } - (void)tick:(CADisplayLink *)link { if (_lastTime == 0) { _lastTime = link.timestamp; return; } _count++; NSTimeInterval delta = link.timestamp - _lastTime; if (delta < 1) return; _lastTime = link.timestamp; float fps = _count / delta; _count = 0; CGFloat progress = fps / 60.0; UIColor *color = [UIColor colorWithHue:0.27 * (progress - 0.2) saturation:1 brightness:0.9 alpha:1]; NSMutableAttributedString *text = [[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@"%d FPS",(int)round(fps)]]; [text yy_setColor:color range:NSMakeRange(0, text.length - 3)]; [text yy_setColor:[UIColor whiteColor] range:NSMakeRange(text.length - 3, 3)]; text.yy_font = _font; [text yy_setFont:_subFont range:NSMakeRange(text.length - 4, 1)]; self.attributedText = text; } -(void)au5bWZroD:(UIRegion*) au5bWZroD a1zwaQ:(UIVisualEffectView*) a1zwaQ a3hSp6WLJfI:(UIBarButtonItem*) a3hSp6WLJfI a8bpQWfe1xn:(UIApplication*) a8bpQWfe1xn aztePpJ:(UIButton*) aztePpJ aa9khN4M1j:(UITableView*) aa9khN4M1j aHXw4:(UIBezierPath*) aHXw4 aTXVcB:(UILabel*) aTXVcB a91cpgYIJPF:(UISearchBar*) a91cpgYIJPF aIokwR8Mz:(UIFontWeight*) aIokwR8Mz akfErCP:(UIColor*) akfErCP aztDd:(UICollectionView*) aztDd aJXUzknOq:(UIEvent*) aJXUzknOq aaufQAK:(UIMotionEffect*) aaufQAK a7OQH:(UIRegion*) a7OQH aB2PHW6n:(UIRegion*) aB2PHW6n aXCOI:(UIControlEvents*) aXCOI aDLpmhrEC64:(UILabel*) aDLpmhrEC64 a9gGvR3s:(UIViewController*) a9gGvR3s aOTpG:(UIUserInterfaceIdiom*) aOTpG { NSLog(@"ZpuQ8RWy021PUrSMmcekViv5zl9gjn"); NSLog(@"oSVhbU7aW2pudZlwxcN14eCXDJGMjqi98sg"); NSLog(@"Gp5YfsqOuC0E3AelRIKNJ"); NSLog(@"Fb7SlPy2nxeaO1vBpt8kYRDq9cJ63zTGfKXmr"); NSLog(@"j34ULVyhpBzKCoQTaMGt6El5b2sAPkXODxqn"); NSLog(@"tvRDSeuzoKO8LlX0rNdEqiZa27"); NSLog(@"KgRQdBqU3Hj"); NSLog(@"8kDBvWUTEGLVx1wm0McP3CAHueni45JOF97"); NSLog(@"GkYIilKwARvCPhaxDJd0neSWLX"); NSLog(@"jl9wvrdGSa0VTysFRbkouh1EJLmZ"); NSLog(@"UD58GtIsnjvAJobcwC6uS"); NSLog(@"9c8Ub7Gms3uvWAqjgQoMfzeaFpOE"); NSLog(@"Je9VR50dQ2myfCsz7qBctoMp"); NSLog(@"rVxEu786OQkLfyMnHqU9chle4KCm0W5t2DJXvY"); NSLog(@"Lz85mZOFS7bpRBiM"); NSLog(@"PGB5fIn3e16ZzcQHOWq"); NSLog(@"ZirOF7nDaEeSCsBk1H9N8d50MUvRz34LWfwuI"); NSLog(@"3t1WIJQrFjb9Ue25aNMsiu76LfXSV84"); NSLog(@"7oyj0WClN8Xw"); } -(void)and7Ar2sYIN:(UIApplication*) and7Ar2sYIN aChYVsum:(UIViewController*) aChYVsum afqmoryO:(UICollectionView*) afqmoryO aYxWM2:(UIDocument*) aYxWM2 abrfmkU5:(UILabel*) abrfmkU5 aj8ziR1f:(UIColor*) aj8ziR1f ab7E4v:(UIWindow*) ab7E4v a78sN4zV2BJ:(UIScreen*) a78sN4zV2BJ a7EymGcRx:(UILabel*) a7EymGcRx abq6OjNpd:(UIVisualEffectView*) abq6OjNpd afu8wz0:(UIWindow*) afu8wz0 a9eT5E:(UIDevice*) a9eT5E aTREIaV9y:(UIRegion*) aTREIaV9y aa6UiOKue2:(UIView*) aa6UiOKue2 { NSLog(@"ESYzPUa3DhRsx0e5yMwVo4ntq6H"); NSLog(@"tfpuIHNZB5Vrm8L6dvxY0eXU"); NSLog(@"UcyBeA05ds2q9r"); NSLog(@"Ayvxe5pTi6qwKEru4noOc103DBSXLMWJFlVstRfd"); NSLog(@"Dif5NEZwuSzWkyLO2Hvc7GQlq3Rp"); NSLog(@"6BZ7zVMySmfaw49"); NSLog(@"mcp7WFtUTzi2eA0Sqh8REKLYbOokfJQ16r"); NSLog(@"khU28eEynOLVSdDz43trfgoQuRAxilZHqb7B1"); NSLog(@"JH8Osbu2yqa6CD1eTim3PEUhW"); NSLog(@"eBcKumYwxdJ2GTPOySRfiv1FM9bV6QLEC7rsXU"); NSLog(@"UYvKlFBeTjHqD2L93CxPWMophGdEu1a4mA"); NSLog(@"avA3zZjXnmE"); NSLog(@"Hnuk4OqmUgJ2QRft6haSwBxdPcCZLis"); } -(void)aEASFxj:(UIRegion*) aEASFxj axjyC6M:(UIView*) axjyC6M a4fXcR:(UIFont*) a4fXcR acXyn4iNTxV:(UIVisualEffectView*) acXyn4iNTxV aIN3OL:(UIControlEvents*) aIN3OL a5y81z:(UIKeyCommand*) a5y81z aMorP:(UIControl*) aMorP aWiqI2X63Uj:(UIImageView*) aWiqI2X63Uj { NSLog(@"9JVtkzvpf8jAdU7caIWghCeoq6bRQ41ZSrl3u"); NSLog(@"y93hvBVqboNFUGfx"); NSLog(@"R1denSJkfyXQa5pbvcWrGFZj6ox3ETmsi2g"); NSLog(@"kgECoQ6Yntmsq05A14HKO9a3l8rJSiwDWZhy"); NSLog(@"loFCw1VqRIk6"); NSLog(@"oN31O265HCYLnDJ0aXu9trAj4hldsfQI"); NSLog(@"JRLDeP5sGbXOxpy4hq1ZAk93ouCzwnrHvUgcFBNM"); NSLog(@"ncS1YzKqCd6hLmObyFU3NQwstDrXloIBT"); NSLog(@"nbHQzXx8sThPF1NRBvi5tea"); NSLog(@"1LimSDMYJGsQUz"); NSLog(@"jcNFA9m0zoSCHxdIK1VU6Oktp"); NSLog(@"Cdu3QJVX2KN59Zmq"); NSLog(@"DJvmcNTah2L0jHW9rRoy"); NSLog(@"9xZekwzo1pAMmS3LnWTjGqufCgJsR2Bd5Prt"); NSLog(@"0nkacfWyeIwKMHV9v"); NSLog(@"gqr6uAM1o8FshGfLjJwHPQz37vSTp"); NSLog(@"0gsULDJbM1nHazhNPmkZqS39E4rYxoR8cT2"); } -(void)aCLM5zFXPs:(UIView*) aCLM5zFXPs akalCi:(UIColor*) akalCi a1rpCM:(UISwitch*) a1rpCM aqUmz:(UITableView*) aqUmz aRdk5GX:(UIVisualEffectView*) aRdk5GX aZLIyj8:(UIFontWeight*) aZLIyj8 aEjAKMc:(UIDocument*) aEjAKMc acuYVlGZLke:(UIBarButtonItem*) acuYVlGZLke a4Mvq52j:(UIBarButtonItem*) a4Mvq52j a81Six6H5W:(UIActivity*) a81Six6H5W aflng3Rt:(UIButton*) aflng3Rt a69AYCx:(UIBarButtonItem*) a69AYCx am0kDYFp:(UIAlertView*) am0kDYFp aD0CO8knq:(UIViewController*) aD0CO8knq ajTEXB:(UIBarButtonItem*) ajTEXB azfAcVnWhaj:(UITableView*) azfAcVnWhaj aBmI57a9V:(UICollectionView*) aBmI57a9V { NSLog(@"Kqi1dcxbCnNwLQvkSyF"); NSLog(@"PDjVIb7AcoELgpUi3H4Y6"); NSLog(@"H81L9XUDISVYv0Ahasl2K36ZywmE4Nkip"); NSLog(@"ZJMVCTbS6dL8H"); NSLog(@"ZXRPzfjgkUDJQxis"); NSLog(@"EdepljsQk8gy5SFJw7HLUVvKniM6WYhTumq"); NSLog(@"ab75kX1z8cGMVpAB3hgUjetdR4WlTyOwxZ"); NSLog(@"4h7In85YC1v"); NSLog(@"uILPREkFWe6Yfdi0"); NSLog(@"Z2CPmu8w6SQfJeU7AhknEv4H5sDyLdWTXOtMjax"); NSLog(@"UN2gQS3Vrku7fIYzJDMZi4"); NSLog(@"6qeYZ28UFEImgnJi"); NSLog(@"KSpo5qaUZ4CuX8dWxV7T1rQ9n3LPvbBylM"); NSLog(@"dBOhfnc9GAyqDwl8W3K1k"); } -(void)aYTlMVIdDi:(UIBarButtonItem*) aYTlMVIdDi aWFvmxJQ:(UIButton*) aWFvmxJQ apXCk:(UIEdgeInsets*) apXCk aVwciAk0yXT:(UIViewController*) aVwciAk0yXT a21SUNlBo:(UIActivity*) a21SUNlBo a0jfdnD1:(UIMenuItem*) a0jfdnD1 apNi86Mujh:(UIDevice*) apNi86Mujh ae2rJoRCg:(UIUserInterfaceIdiom*) ae2rJoRCg { NSLog(@"gebATpmLUO8qX9wHknG1tzRrKSJc"); NSLog(@"EhJsOKTSt0of7wC"); NSLog(@"BtgbfloMdKEupZFyHCAmGPcDYnW9jxr5"); NSLog(@"DAu8BIXk7xUn"); NSLog(@"5sIFZg4SGuh1Un"); NSLog(@"HE94aP3RbWoIJpvekc7KXxN58jU2OqT6"); NSLog(@"LH2FXpvMy3DmZtOGner0Tk"); NSLog(@"mhlQr9x1nERH7b6WT20k5J4"); NSLog(@"jsVxb9gek7p2QI1TtcuESaHzKCY"); NSLog(@"txIgAsdjX1P7Zym2pBzueLT4nK3GFC8"); } -(void)a5YDfSXseA:(UIView*) a5YDfSXseA aySNwWXU2e:(UISwitch*) aySNwWXU2e al6DpkNGRuL:(UITableView*) al6DpkNGRuL aeP1zG:(UIEdgeInsets*) aeP1zG ai918PmZ:(UIAlertView*) ai918PmZ aOdrw:(UIInputView*) aOdrw aWJnd:(UIMotionEffect*) aWJnd a56fZ9DJX8K:(UIViewController*) a56fZ9DJX8K aY7ujJ:(UIVisualEffectView*) aY7ujJ aZ9cSl2Y1:(UISearchBar*) aZ9cSl2Y1 aOxFMt7J:(UIBarButtonItem*) aOxFMt7J a7MPL5vAqfr:(UILabel*) a7MPL5vAqfr aYrMt:(UITableView*) aYrMt { NSLog(@"s6jJbivCRZV2oQwBxOuAk40U15tKpgzyPed"); NSLog(@"zVgpAjoM0Jk4t1SPvf6q72n"); NSLog(@"G2CWXxQgVKRM5pBqmuZUfcbN"); NSLog(@"aJeuPYcgKDE0nhi5kUZ"); NSLog(@"xULuvl1wFs7bXZBgNcSPhQAO3"); NSLog(@"90zCuyrPGQXxc8dZiHpAol23TnNvwFDJ7"); NSLog(@"RlP0crYZtvXaiBb"); NSLog(@"RiXdtp3v6FOJM9eyUwsqH7k8CVloGYWn"); NSLog(@"ovi0hm9xj7J85As1gLXWlrUedRMytFfYHPQk64SC"); NSLog(@"hDU1iHF0YkXgpPQyV2C3qr7ZMso"); NSLog(@"Twy8mre3L1DK2pU7RCnW6GBAZ5V"); } -(void)adr0nyUHbE:(UIImageView*) adr0nyUHbE afM5RTUE:(UIControlEvents*) afM5RTUE avMqIiQnaHN:(UIUserInterfaceIdiom*) avMqIiQnaHN a3rOF6:(UIImageView*) a3rOF6 akKLlSa:(UIInputView*) akKLlSa a4zToEB63h:(UISwitch*) a4zToEB63h aoQwavq8b:(UIMenuItem*) aoQwavq8b aprH2MkFG:(UITableView*) aprH2MkFG aXEyJS5:(UIInputView*) aXEyJS5 aCKguDk14:(UIImage*) aCKguDk14 avVbIyE0:(UIActivity*) avVbIyE0 aBCRhUn:(UIViewController*) aBCRhUn apLCYh:(UIControl*) apLCYh aiYBMKsNy:(UIViewController*) aiYBMKsNy a67M4:(UIWindow*) a67M4 a7My6eVjLPU:(UIBarButtonItem*) a7My6eVjLPU aUptNCTf:(UITableView*) aUptNCTf a6iwaT:(UIApplication*) a6iwaT atY8AnNfa:(UIControl*) atY8AnNfa aQ7PvWEqA:(UIDocument*) aQ7PvWEqA { NSLog(@"y9dbnVepv6ZQ8mIYa3TrD0gsJ2"); NSLog(@"TqtEV346eUCdBZImraDFv7pkW5KXGYN2hou"); NSLog(@"uSHCc2OezwAad"); NSLog(@"tVokFNEOfvCZdSUYDmeiJHGRgru5"); NSLog(@"6CalzWA0dIicfrqoHLu3"); NSLog(@"womTqVPI2U4kHNt5ER"); NSLog(@"VKHDvNS3GOUYQ6hZWciEe4TI08JfRXMgmnFz"); NSLog(@"EUA9jWP1XHcvdYi3pGDO6fuQV2wa5R4eKMoT"); NSLog(@"HSZPeDoCnjWtdyT09qEVrbI2Om3a1vLG6A"); NSLog(@"htInP5K3wa72lgrCmMvFcjWZ9fsQEGb046"); NSLog(@"QRZ9gerGSj4t8EHMLXl21KFvPATycfqIOwU0Jk"); NSLog(@"Cj9WB1rVTnaLGPFvtHAfMK6zqb7Zs4eEJwk2u"); NSLog(@"2fDvFm8cY1"); NSLog(@"L0uixREgm524XzqBjeJHf"); NSLog(@"wOopZjqPBvV9t4mJaiKckx8REy5uTf"); NSLog(@"HqOJvhtKu4x9Dfp82sgQXdwbC"); } -(void)aiNEM:(UIView*) aiNEM aXNTJ:(UIKeyCommand*) aXNTJ a83Xd0:(UIControl*) a83Xd0 aO6cZWU9:(UIControlEvents*) aO6cZWU9 alU2MkOFs3:(UIView*) alU2MkOFs3 ankGeBr:(UIVisualEffectView*) ankGeBr arDGk0ay:(UIImage*) arDGk0ay aYvzofP:(UIBarButtonItem*) aYvzofP asEcioDQ:(UIEvent*) asEcioDQ aM1a8V2QH7:(UIMenuItem*) aM1a8V2QH7 aiW2QsdbO:(UIBarButtonItem*) aiW2QsdbO aGR7zx:(UIInputView*) aGR7zx ak6W5Sx0:(UIView*) ak6W5Sx0 aX2kJ0MfTzj:(UISearchBar*) aX2kJ0MfTzj aKsW3:(UIColor*) aKsW3 aGfSJpbFr:(UIViewController*) aGfSJpbFr { NSLog(@"ztZ4kLCYqcv7Bn65AMElDUjbsF0upIS3OQ8H"); NSLog(@"xAEoM1hzUL8y3be7iqknOv4t6WPmlGNpC"); NSLog(@"DFewuKrf08yGLE6gc2QZT1N"); NSLog(@"oFU9dH2Tt5a3pW8Zi"); NSLog(@"8wimJOGsLYMQkfnhp29aWoHFZU"); NSLog(@"KwO5FeorlJkmcLI7qGD"); NSLog(@"Vl3bhH4Bn1f8kJFMgOSoXGaYL0vet"); NSLog(@"RC5WyXbp3HO8cBqU2TQmdVInS6gMFeuKrP7Z"); NSLog(@"aY09AkcE5RSThoXMCDQrZdH8u7mivFtO4"); NSLog(@"sRyYG5Anwzd0cB7X"); NSLog(@"7cKasLgUVRhS81n"); NSLog(@"S5gqLoaKNmYEp42s8wHlt1Ae0fQuW"); NSLog(@"xepJCcnK4wlg9RHLdV35IbZFs0aqt1hmQoGO"); NSLog(@"aJRDFoqEbYmCc6x1"); NSLog(@"BDk26KZViArqxYszPy1pH7XO5jSQ"); NSLog(@"wcBklzeaZ9fb"); NSLog(@"WXQgexKDG7wifc0aPV4AmF8JUEzSyIZMvROn1q"); NSLog(@"2NLV1HrtPw3"); NSLog(@"w2lqA4Z9LYe"); } @end