Swift獲取當(dāng)前頁(yè)面幀數(shù)值FPS,判斷當(dāng)前頁(yè)面流暢程度。

本文摘自github,如果侵權(quán),請(qǐng)聯(lián)系我刪除,原文地址github

Swift獲取當(dāng)前頁(yè)面幀數(shù)值FPS,判斷當(dāng)前頁(yè)面流暢程度。
97C8.tmp.jpg

代碼

//

// V2FPSLabel.swift

// V2ex-Swift

//

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

// Copyright ? 2016 Fin. All rights reserved.

//

import UIKit

//重寫(xiě)自 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"

}

}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,753評(píng)論 25 709
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,043評(píng)論 4 61
  • 匆匆的西藏之旅給我留下了太多的回憶,即將離開(kāi)之時(shí),有太多的不舍,很遺憾的是這次因?yàn)樘鞖馓?,沒(méi)有能去古格王朝遺址,...
    Tong_yh閱讀 578評(píng)論 0 5
  • 愛(ài)而不得,情深不壽
    S雙生琉璃S閱讀 104評(píng)論 0 0
  • 老人把她的一生都貢獻(xiàn)給了子女,不奢求回報(bào)什么,很好,對(duì)自己很差,唯有陪伴是最好的,多陪陪自己身邊僅存的老人,別讓她...
    我真的不是西門慶啊啊啊啊啊閱讀 165評(píng)論 0 0

友情鏈接更多精彩內(nèi)容