Swift获取当前页面帧数值FPS,判断当前页面流畅程度。

本文摘自github,如果侵权,请联系我删除,原文地址github

Swift获取当前页面帧数值FPS,判断当前页面流畅程度。
97C8.tmp.jpg

代码

//

// V2FPSLabel.swift

// V2ex-Swift

//

// Created by huangfeng on 1/15/16.

// Copyright © 2016 Fin. All rights reserved.

//

import UIKit

//重写自 YYFPSLabel 

//https://github.com/ibireme/YYText/blob/master/Demo/YYTextDemo/YYFPSLabel.m

class V2FPSLabel: UILabel {

private var _link :CADisplayLink?

private var _count:Int = 0

private var _lastTime:NSTimeInterval = 0

private let _defaultSize = CGSizeMake(55, 20);

override init(frame: CGRect) {

var targetFrame = frame

if frame.size.width == 0 && frame.size.height == 0{

targetFrame.size = _defaultSize

}

super.init(frame: targetFrame)

self.layer.cornerRadius = 5

self.clipsToBounds = true

self.textAlignment = .Center

self.userInteractionEnabled = false

self.textColor = UIColor.whiteColor()

self.backgroundColor = UIColor(white: 0, alpha: 0.7)

self.font = UIFont(name: "Menlo", size: 14)

weak var weakSelf = self

_link = CADisplayLink(target: weakSelf!, selector:#selector(V2FPSLabel.tick(_:)) );

_link!.addToRunLoop(NSRunLoop .mainRunLoop(), forMode:NSRunLoopCommonModes)

}

required init?(coder aDecoder: NSCoder) {

super.init(coder: aDecoder)

}

func tick(link:CADisplayLink) {

if _lastTime == 0 {

_lastTime = link.timestamp

return

}

_count += 1

let delta = link.timestamp - _lastTime

if delta < 1 {

return

}

_lastTime = link.timestamp

let fps = Double(_count) / delta

_count = 0

let progress = fps / 60.0;

self.textColor = UIColor(hue: CGFloat(0.27 * ( progress - 0.2 )) , saturation: 1, brightness: 0.9, alpha: 1)

self.text = "\(Int(fps+0.5))FPS"

}

}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,118评论 25 708
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,202评论 4 61
  • 匆匆的西藏之旅给我留下了太多的回忆,即将离开之时,有太多的不舍,很遗憾的是这次因为天气太冷,没有能去古格王朝遗址,...
    Tong_yh阅读 510评论 0 5
  • 爱而不得,情深不寿
    S双生琉璃S阅读 98评论 0 0
  • 老人把她的一生都贡献给了子女,不奢求回报什么,很好,对自己很差,唯有陪伴是最好的,多陪陪自己身边仅存的老人,别让她...