- CADisplayLink
- NSProxy
- forwardingTargetForSelector:
一.CADisplayLink
(1) 为什么使用CADisplayLink而不是NSTimer?
CADisplayLink时,它的定时器方法就是屏幕每次刷新的时候就会调用
(2) 如何计算当前的FPS?
弄懂这个问题首先要知道什么是FPS,
即:一秒刷新多少次
那么记录一下刷新次数,然后除以时间就可以了
这里主要是利用了CADisplayLink
的时间戳属性timestamp
在CADisplayLink调用的方法里有以下代码:
_count++; // 记录刷新次数
NSTimeInterval delta = link.timestamp - _lastTime;
if (delta < 1) return;
_lastTime = link.timestamp;
float fps = _count / delta;
_count = 0;
这样就得到FPS了
(3) 如何解决循环引用问题?
CADisplayLink
对象 _line
被控制器持有,_line
又持有控制器作为Target
,这样如果在控制器的dealloc
里[_link invalidate];
是没用的,因为根本不会去到dealloc
里;
有个比较不好的解决方式是,在viewWillDisappear
里[_link invalidate];
,但是这并不是一个好的解决办法,因为如果push到其他页面,是不需要停止定时器的;
这就引出了NSProxy
,这是我接触的第一个非NSObject的子类;
遵守<NSObject>
协议
@interface NSProxy <NSObject> {
Class isa;
}
可以用NSProxy
作为中间人,弱引用控制器,
那target
如何调用控制器实现的方法呢?
消息转发!
消息转发.png
在NSProxy
的声明文件里
被注释了.jpg
被注释了,但是重写该方法,还是能够起作用,(或者是其他我不知道的原因)
以上,就可以在退出当前控制器正确释放 timer 了
被释放.jpeg
看有没有越狱,iPhone实时监控fps必须要有悬浮桌面,而没有越狱的苹果是做不到的。而且看你是用来做什么的,如果只是为了知道自己手机的fps刷新率,这个倒是很简单
分辨率选择:用户可以在相机界面的右侧找到分辨率选择选项,可以在4K和HD之间进行切换。帧率切换:除了分辨率选择外,用户还可以选择不同的帧率。对于HD视频,可以选择30或60 fps;对于4K视频,则可以选择30、60和24 fps。操作便捷性:相比iOS 13.2之前的版本,用户无需离开相机应用,再进入“设置”“相机...
在 Xcode 中启用 Debug View 的 Show View Frame 选项,可以实时查看 UI 元素的边界框,提高 UI 设计的精准度。离屏渲染优化 FPS:在 Debug 菜单中勾选 Color Offscreen Rendered,模拟器将展示优化后的视图,帮助识别和解决离屏渲染问题,提高 FPS。窗口大小调整:通过 Command + 1/2/3/4 快捷键...
在相机界面的右侧,用户可以看到两个新选项:分辨率选择(4K和HD(1080p)之间),以及帧率切换(HD视频为30或60fps,4K视频为30、60和24fps)。在iOS 13.2之前,如果用户想要对视频录制的帧率和分辨率进行调整,则需经过以下流程:离开相机应用,依次打开iPhone“设置”-“相机”-“视频录制”,选择视...
在相机应用的右上方,您可以找到显示当前视频分辨率和帧速率的位置。分辨率更改:轻点该区域即可切换分辨率。如果您在“设置”“相机”中将视频质量预设为1080p,则可以在HD和4K之间切换;如果预设为720p,则可以在720p和4K之间切换。帧速率更改:当以4K拍摄时,您可以点击帧频选项在24、30和60 fps之间...
打开设置:首先,在你的iOS设备上找到并打开“设置”应用。进入相机设置:在“设置”中,向下滚动找到并点击“相机”选项。调整视频录制分辨率:在“相机”设置中,找到并点击“录制视频”选项。这里,你可以看到不同的分辨率设置,如720p HD 30 fps、1080p HD 30 fps或60 fps。选择分辨率:根据你的...
通常情况下,帧率以每秒帧数(FPS)的形式表示。如果你想调整某个视频或动画的帧率,你可以使用专业的视频编辑软件,如Adobe Premiere Pro或Final Cut Pro等。在这些软件中,你可以导入你要编辑的视频或动画,然后在时间轴上调整帧率。具体的操作步骤可能因软件而异,但通常可以通过在编辑面板上设置帧速率...
iOS 15.1 新功能主要包括以下几点:支持 ProRes 视频格式:在 iOS 15.1 中,iPhone 13 Pro 和 13 Pro Max 增加了对 ProRes 视频格式的支持。用户可以在“设置”“相机”“格式”中开启此功能。128GB 版本的 iPhone 13 Pro 系列仅支持以 30fps 拍摄 1080p ProRes 视频,而更高存储容量的版本...