尽量将View设置为Opaque,iOS开发技巧

转自:http://www.tiboo.cn/dianzijie/b1837169/
iOS设备都具有一定的局限性,开发者只能力求使其不断趋于完美。每一阶段的iOS开发都与遇到很多的问题,开发者和专家也在不断总结经验,与大家一起分享心得和体会。
下面是一点开发技巧,希望对大家有帮助。
要注意,首先尽量将view设置为Opaque,如果view是不透明的,那么应该将其opaque属性设置为YES。  
为什么要这样做呢?其实是有一定的原因的,一起来看一下。这样设置ios可以让系统以最优的方式来绘制view。opaque属性可以在Interface Builder或代码中设置。  
苹果的官方文档对opaque属性有如下解释:This property provides a hint to
he drawing system as to how it should treat the view. If set to YES,
the drawing system treats the view as fully opaque, which allows the
rawing system to optimize some drawing operations and improve
performance. If set to NO, the drawing system composites the view
normally with other content. The default value of this property is YES.
(opaque属性提示绘制系统如何处理view。如果opaque设置为YES,绘图系统会将
view看为完全不透明,这样绘图系统就可以优化一些绘制操作以提升性能。如果设置
为NO,那么绘图系统结合其它内容来处理view。默认情况下,这个属性是YES。)  
如果屏幕是静止的,那么这个opaque属性的设置与否不是一个大问题。但是,如果
view是嵌入到scroll view中的,或者是复杂动画的一部分,不将设置这个属性的话
肯定会影响程序的性能!  
可以通过模拟器的Debug\Color Blended Layers选项来查看哪些view没有设置为不透明。为了程序的性能,尽可能的将view设置为不透明!

时间: 2024-08-08 01:13:40

尽量将View设置为Opaque,iOS开发技巧的相关文章

IOS开发技巧(转)

Subclassing 继承/子类 大多语言允许开发者子类化框架所提供的类,但是在 Objective-C 中不完全是这样.大部分常用的类,诸如 NSArray.NSSet.NSDictionary 基本上都是集合类型的.不建议继承这些类,除非你准备转发调用或者实现所有必要的原始方法. 在传统的开发语言中,通常会通过继承基础类型(类似 NSArray 的类)来新增方法,重载已有的方法,或是自定义 UI 组件的外观.在 Objective-C 中,一般通过 Category 来扩展新方法.通过混合

iOS 开发技巧

快速移除键盘 之前一直是讲view的父类改成control,然后加一个全屏按钮,点击让键盘消失.这个方法要写好多代码,现在一个比较好的方法是重写一个下面的方法: ? 1 2 3 4 - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {     [self.view endEditing:YES]; } iOS 开发技巧,布布扣,bubuko.com

iOS开发技巧(系列十七:使用Xcode DEBUG模式和RELEASE模式)

在开发过程中,我们经常需要用到NSLog输出一些信息,甚至有的开发过程,必须在控制台查看输出,有经验的程序员通过控制台输出就能知道整个数据交互的一个流程.但是一个发布的程序,里面带有太多的NSLog输出,肯定对于App性能有所影响,这时候我们可以使用一个宏定义来处理,在开发的时候使用DEBUG模式,在发布的时候使用RELEASE模式.这样,发布的App就不会在程序内部做大量的NSLog输出了. 简单的代码如下, #if defined(DEBUG)||defined(_DEBUG)     NS

iOS开发技巧之查看模拟器沙盒文件

iOS开发技巧之查看模拟器沙盒文件 iOS开发中,在对数据库进行操作时,有时我们需要直观的查看数据库的内容,那么我们如何找到沙盒中的这个文件呢,步骤很简单: 1.点击Finder选项栏上的前往菜单: 2.选择前往文件夹选项: 前往的文件路径为:/Users/username/Library/Application Support/iPhone Simulator/ 其中username为当前mac电脑的用户名. 3.界面类似如下模样,选择一个版本的模拟器,应用的沙盒文件就在Application

iOS开发技巧 -- 复用代码片段

如果你是一位开发人员在开发过程中会发现有些代码无论是在同一个工程中还是在不同工程中使用率会很高,有经验的人会直接封装在一个类里,或者写成一个宏定义或者把这些代码收集起来,下次直接使用,或者放到xcode的代码片库里,直接使用, 从而提高开发效率: 1. 将常用代码片段封装成一个类里 当一个代码片在一个或多个工程之中经常出现时,把他封装在一个类里面,在使用时候直接传参即可实现对于功能,或者直接把这类放到另一个工程中同样使用: 使用UIAlertView举例 创建一个XF_UIKit类,对于声明文件

iOS开发技巧系列---使用链式编程和Block来实现UIAlertView

UIAlertView是iOS开发过程中最常用的控件之一,是提醒用户做出选择最主要的工具.在iOS8及后来的系统中,苹果更推荐使用UIAlertController来代替UIAlertView.所以本文也并不提倡开发者再使用UIAlertView,本文的目的是探讨如何将原来的给变量赋值和通过Delete来回调的方式变成链式编程风格和通过Block来回调.通过学习对UIAlertView的改造让各位iOS开发者能够学会这种更加便捷的开发方式 什么是链式编程 对于有一定开发经验的开发者来说,链式编程

把所有界面的状态栏字体颜色设置为白色--iOS开发系列---项目中成长的知识一

第一步: 在info.plist中 View controller-based status bar appearance这个属性设置为 View controller-based status bar appearance =NO 这个意思是:View Controller 不对status Bar 显示进行操作 第二步: 由于项目是一个以tabbarController的父类进行开发的;所以在这个父类里面添加如下方法: [[UIApplication sharedApplication] s

iOS开发技巧(系列十八:扩展UIColor,支持十六进制颜色设置)

新建一个Category,命名为UIColor+Hex,表示UIColor支持十六进制Hex颜色设置. UIColor+Hex.h文件, #import <UIKit/UIKit.h> #define RGBA_COLOR(R, G, B, A) [UIColor colorWithRed:((R) / 255.0f) green:((G) / 255.0f) blue:((B) / 255.0f) alpha:A] #define RGB_COLOR(R, G, B) [UIColor co

网上收集的以及自己总结的iOS开发技巧

Objective-C 1.让Xcode的控制台支持LLDB类型的打印 这有什么用? 怎么说尼,笔者认为这个还是比较有用滴,为什么有用尼? 因为在Xcode断点调试的时候, 在控制台输入 po self.view.frame 或者 po id 类型的时候就死翘翘了.不信? 看如下图 : 进入正题 打开终端输入三条命令: 1. touch ~/.lldbinit 2. echo display @import UIKit >> ~/.lldbinit 3. echo target stop-ho