博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Tips For Views
阅读量:7002 次
发布时间:2019-06-27

本文共 1146 字,大约阅读时间需要 3 分钟。

Views不总是会拥有一个View Controller

在应用中,几乎没有View和View Controller一一对应的时候。View Controller的作用是管理一个view hierarchy(通常由一系列view组成,用来实现某些feature)。对于iPhone应用,每个view hierarchy通常会填满整个屏幕,但是对于iPad应用,它只填充部分屏幕。

在设计应用的UI时,考虑view controller所扮演的角色是非常重要的。view controller提供了许多重要的行为,比如协调屏幕上多个view的呈现,协调这些views的移除,在low-memory警告时释放内存,根据interface朝向的变化旋转view。

Minimize Custom Drawing

尽管自定义的drawing有时候是需要的,但还是要尽可能避免。只有当前系统的view类不满足需要时,才进行自定义。

利用好Content Modes

Content Modes能够最小化redraw view带来的时间开销。默认情况下,views使用UIViewContentModeScaleToFill 模式,将view的内容调整到适合view frame的大小。通过改变mode来达到想要的效果,但是应该避免使用UIViewContentModeRedraw。不论哪种mode已经生效,你都可以通过setNeedsDisplay和setNeedsDisplayInRect来强制view进行redraw。

尽可能将view声明为Opaque

UIKit使用opaque属性来决定view是否可以优化合成操作。将opaque设置成YES会告诉UIKit,它不需要渲染view后的任何内容。减少渲染可以极大的提升drawing的性能。

当滚动时调整View的drawing行为

滚动在短时间内会触动大量的view更新。如果view的draw code优化的不好,滚动的性能会很差。在滚动过程中没有必要始终保持view的内容是崭新的。例如,在滚动过程中,可以暂时减少渲染内容的质量或者修改content mode,当滚动停止时,再将view返回到先前状态,更新所需的内容。

不要通过嵌入subview来自定义control

尽管在技术上,向系统的标准controls(继承于UIControl的对象)添加视图是可行的,但你应该永远不要这么做。支持自定义的Control通过标准文档的接口在类中已经说明了。例如,UIButton类包含了可以设置title和background的方法。使用定义好的方法意味着代码会正确执行。规避这些方法,嵌入一些自省一的图片和label会导致应用行为出错。

转载地址:http://srrvl.baihongyu.com/

你可能感兴趣的文章
关于JDBC链接数据库的代码实现
查看>>
Linux命令-压缩解压命令:gzip、gunzip
查看>>
raspberry pi的网络配置
查看>>
jstring 和char 之间的转换方法
查看>>
可穿戴式智能设备,其潜在的安全问题?(上)
查看>>
ASP入门(九)-Request对象小案例
查看>>
PullToRefresh的个性化扩展
查看>>
分布式服务框架ZooKeeper
查看>>
【转】android gravity属性 和 weight属性
查看>>
ViewStub用法
查看>>
使用Texture2D创建Cubemap
查看>>
Jquery图片上传组件,支持多文件上传
查看>>
Server.xml配置解析
查看>>
线程笔记:Future模式
查看>>
Kali Linux渗透基础知识整理(二)漏洞扫描
查看>>
【转】【Mysql】MySQL添加用户、删除用户与授权
查看>>
U面经Prepare: Print Binary Tree With No Two Nodes Share The Same Column
查看>>
Android SDK上手指南:知识测试
查看>>
基于对话框的应用程序,点击button打开一个网页
查看>>
C#和JAVA中编写事务代码
查看>>