资讯专栏INFORMATION COLUMN

Tips For Views

刘福 / 3073人阅读

摘要:的作用是管理一个通常由一系列组成,用来实现某些。在设计应用的时,考虑所扮演的角色是非常重要的。通过改变来达到想要的效果,但是应该避免使用。当滚动时调整的行为滚动在短时间内会触动大量的更新。在滚动过程中没有必要始终保持的内容是崭新的。

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会导致应用行为出错。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/15784.html

相关文章

  • UITableView和UICollectionView的流畅滚动

    摘要:以及被设计用来支持展示能滚动的数据集。,因为的完全可自定义,提供了最大程度上的灵活性。基础方式是为需要显示的的每个属性创建出口,并通过来初始化。然而,文章中基础原则仍然适用。 As most iOS developers know, displaying sets of data is a rather common task in building a mobile app. App...

    Loong_T 评论0 收藏0
  • iOS-高性能

    摘要:是一个线程安全的高性能键值缓存该项目是组件之一。如果你正在实现需要扩展的算法,也许高性能数组就能出现在你脑海中。 UIApplicationDelegate 中两个值得注意的地方 这个知识点可以用于面试,以及对于一些对初始化时机有要求的 SDK 配置的 bug 排查。 答案是会的,应用从 active 状态至 suspended 状态,是必须经过 background 状态的,我们应该...

    FullStackDeveloper 评论0 收藏0
  • [Tips on Ember 2] Ember CLI with Webstorm

    摘要:好,你用就用吧,各种问题自己也不会看文档问谷歌,成天怨声载道的不得不吐槽一下现在的年轻人。为什么使用有关和的纠结历史可以去谷歌一下,此处不再啰嗦最根本的原因就是对的支持更好,更新和维护也更勤快。 Tips on Ember 2 对我来说是没什么计划性的写作,我只是把它当做是每天工作的总结日志,一个很重要的目的是为团队做一些技术事务的整理,以帮助一些新人快速成长起来。如果有些内容不能满足...

    curlyCheng 评论0 收藏0
  • Django + Django REST framework步骤总结

    摘要:主要记录一下的步骤总结,第一次鼓捣后台和,代码写得可能有点乱此项目的部署记录点击这里一创建配置项目项目初始配置创建项目安装数据库驱动更改数据库配置这里为了方便就直接用了数据库引擎数据库名账户名密码主机端口接着在添加如下代码设置中改为自己的 主要记录一下Django + Django REST framework的步骤总结,第一次鼓捣后台和python,代码写得可能有点乱此demo项目的...

    snowLu 评论0 收藏0
  • Django + Django REST framework步骤总结

    摘要:主要记录一下的步骤总结,第一次鼓捣后台和,代码写得可能有点乱此项目的部署记录点击这里一创建配置项目项目初始配置创建项目安装数据库驱动更改数据库配置这里为了方便就直接用了数据库引擎数据库名账户名密码主机端口接着在添加如下代码设置中改为自己的 主要记录一下Django + Django REST framework的步骤总结,第一次鼓捣后台和python,代码写得可能有点乱此demo项目的...

    李义 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<