iOS 应用性能提高 -- UI
来源:互联网 发布:php登陆后显示用户名 编辑:程序博客网 时间:2024/05/20 04:29
最近在看 iOS 应用性能提高的部分,需要注意的地方 、记录下来
1、在我们 自定义 我们 UIView 时,避免用 透明的背景色
self.alpha = 0.1
使用alpha的视图会影响性能;
2、当我们的应用成熟时,我们可以借助draw 的方法 绘制出我们的UI ,是可以提高我们的性能的;如下:
界面:
当我们 用 组合view 的方式 完成 如上界面的话:用的时间为:106.65ns
time:1511861345573.04 //ViewController:viewDidLoad():
time:1511861345679.69 //ViewController:viewDidLoad():
结果为106.65毫秒:
当我们 将上面 最小组合的view 换成 绘制的view
代码如下:
class ZXTitleDrawView: UIView { var _title:String = "--" var _value:String = "--" var title:String { get { return self._title } set { _title = newValue self.setNeedsDisplay() } } var value:String { get { return self._value } set { _value = newValue self.setNeedsDisplay() } } override init(frame: CGRect) { super.init(frame: frame) self.backgroundColor = UIColor.white } required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } override func draw(_ rect: CGRect) { let context = UIGraphicsGetCurrentContext()! let point = CGPoint(x: 0, y: 0); drawText(context, self.title, point, [NSAttributedStringKey.font: UIFont.boldSystemFont(ofSize: 12)]) let valuePoint = CGPoint(x: self.zx_width()-50, y: 0) drawText(context, self.value, valuePoint, [NSAttributedStringKey.font:UIFont.boldSystemFont(ofSize: 12)]) }}
生成结果:
time:1511861939228.22 //ViewController:viewDidLoad():
time:1511861939235.38 //ViewController:viewDidLoad():
所用时间为: 7.16毫秒
看到这个结果是不是有点干瞪眼,怎么会差距这么大呢;
用组合view的结果:106.65毫秒:
用绘图的方式:7.16毫秒
这个原因主要是 因为,我们在用 UIlabel 时,他的确效果强大,考虑的问题也多,但当我们不需要那么强大的uilabel 时,我们完全可以自己去绘制;这还是上面的界面 只用 最小单元 用 绘制 替换 组合,现在我们将其全部换成绘制,看看效果;
time:1511862574604.05 //ViewController:viewDidLoad():
time:1511862574608.1 //ViewController:viewDidLoad():
结果为:4.05毫秒
又少了 几毫秒;
总结:
在我们制作 UI 时,是完全可以考虑自己绘制,尤其遇到一些 非常简单的三角形或者圆形 图标时,我们完全可以利用图形库去绘制;这样可以提高很大的性能;下篇介绍绘制图形;
- iOS 应用性能提高 -- UI
- Android提高UI性能技巧
- 提高应用性能
- 应用:性能提高技术
- IOS性能提高
- Android中如何提高UI的性能
- Android中如何提高UI的性能
- Android中如何提高UI的性能
- Android中如何提高UI的性能
- 提高flex应用性能方法
- 提高flex应用性能方法
- ios圆角提高性能
- iOS UI图像,页面性能
- 提高android应用ui运行效率
- iOS应用性能优化
- iOS 应用,性能监控
- 经典iOS应用UI架构
- 使用缓存提高Web应用系统性能
- 浏览器访问ftp目录无法访问可以加上用户名密码方法
- Notification 音乐播放器 系统Notification.MediaStyle 模板使用
- 【我的Java笔记】IO流_操作文本文件存在中文乱码的问题 & 编码和解码
- java文件上传和下载
- Object-equals重写,hashCode重写-对象相等
- iOS 应用性能提高 -- UI
- osg获取纹理节点纹理方法
- BootStrap入门(一)
- 工作日志:Timer.schedule()的理解
- Matlab 关于彩色图像的平移、旋转以及对称处理
- 35. Search Insert Position 查找插入位置
- 小白每天学习两个函数D5-(fseek,ftell)
- 利用Kibana图表化Elasticsearch中的数据
- Ubuntu16.04禁用ipv6