From 7b02207537d35bfa1714bf8beafc921f717d100a Mon Sep 17 00:00:00 2001 From: 单军华 Date: Wed, 11 Jul 2018 10:47:42 +0800 Subject: [PATCH] 首次上传 --- screendisplay/screendisplay/Classes/Helpers/YYFPSLabel.m | 99 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 99 insertions(+), 0 deletions(-) diff --git a/screendisplay/screendisplay/Classes/Helpers/YYFPSLabel.m b/screendisplay/screendisplay/Classes/Helpers/YYFPSLabel.m new file mode 100755 index 0000000..fd14c9f --- /dev/null +++ b/screendisplay/screendisplay/Classes/Helpers/YYFPSLabel.m @@ -0,0 +1,99 @@ +// +// YYFPSLabel.m +// YYKitExample +// +// Created by ibireme on 15/9/3. +// Copyright (c) 2015 ibireme. All rights reserved. +// + +#import "YYFPSLabel.h" + +#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 = YES; + 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]; + } + + __weak typeof(self) weakSelf = self; + _link = [CADisplayLink displayLinkWithTarget:weakSelf selector:@selector(tick:)]; + [_link addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSRunLoopCommonModes]; + + [self addGestureRecognizer:[[UIPanGestureRecognizer alloc] initWithActionBlock:^(UIPanGestureRecognizer *_Nonnull sender) { + + // ��������������������������������������������������������� + CGPoint transP = [sender translationInView:weakSelf]; + + weakSelf.transform = CGAffineTransformTranslate(weakSelf.transform, transP.x, transP.y); + + // ������ + [sender setTranslation:CGPointZero inView:weakSelf]; + + if (sender.state == UIGestureRecognizerStateEnded) { + + [UIView animateWithDuration:0.2 animations:^{ + weakSelf.lmj_x = (weakSelf.lmj_x - kScreenWidth * 0.5) > 0 ? (kScreenWidth - weakSelf.lmj_width - 20) : 20; + weakSelf.lmj_y = weakSelf.lmj_y > 80 ? weakSelf.lmj_y : 80; + }]; + } + + }]]; + + return self; +} + +- (void)dealloc { + [_link invalidate]; + _link = nil; +} + +- (void)tick:(CADisplayLink *)link { + if (_lastTime == 0) { + _lastTime = link.timestamp; + return; + } + _count++; + NSTimeInterval delta = link.timestamp - _lastTime; + if (delta < 1) return; + _lastTime = link.timestamp; + CGFloat 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:@"%zd 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; +} + +@end -- Gitblit v1.8.0