iOS开发-Opaque、Alpha、Hidden区别

简介: 在UIView中,有段时间Alpha,Hidden用的比较多,Opaque是最近才了解的,感觉有些不好理解于是就将这三个属性做了区分:属性:1、Alpha(不透明度)2、Hidden(隐藏)3、Opaque(不透明的)1、Alpha(不透明度)

在UIView中,有段时间Alpha,Hidden用的比较多,Opaque是最近才了解的,感觉有些不好理解于是就将这三个属性做了区分:

属性:

1、Alpha(不透明度)

2、Hidden(隐藏)

3、Opaque(不透明的)


1、Alpha(不透明度)


1.1、alpha是不透明度,属性为浮点类型的值,取值范围从0~1.0,表示从完全透明到完全不透明。

1.2、当前UIView的alpha值会被其所有subview继承,即当前UIView的alpha值会影响到其所有subview。

1.3、当alpha为0时,跟hidden为YES时效果一样,但是alpha主要用于实现隐藏的动画效果,在动画块中将hidden设置为YES没有动画效果。


1、backgroundColor的alpha值只影响当前UIView的背景,并不会影响其所有subview。

2、Clear Color就是backgroundColor的alpha为1.0。

3、alpha值会影响backgroundColor最终的alpha。

假设UIView的alpha为0.8,backgroundColor的alpha为0.5,那么backgroundColor最终的alpha为0.4(0.8*0.5)。


2、Hidden(隐藏)


Hidden表示UIView是否隐藏,Hidden设置为YES表示当前UIView的所有subview也会被隐藏,忽略subview的hidden属性。

Hidden只要设置为YES,所有的subview都会隐藏。

UIView隐藏之后也会从当前的响应者事件中移除。


3、Opaque(不透明的)


opaque表示当前的UIView的不透明度,设置是否之后对于UIView的显示并没有什么影响,官方文档的意思简单点说:opaque默认为YES,如果alpha小于1,那么应该设置opaque设置为NO,但是如果alpha为1,opaque设置为NO,产生的后果是不可预料的~


作用原理:

1、给绘图系统提供一个性能优化的开关, UIView 默认为 YES, UIButton 等默认为 NO。

2、如果设置为 YES,绘图系统把这个视图当做一个不透明的来对待,这样就会提高性能。

3、如果设置为 NO,绘图系统就会把它和其他的普通view一样来对待,不去做优化操作。

4、所以说应该把 view 的 opaque 设置为 YES.


This property provides a hint to the 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 drawing 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.
An opaque view is expected to fill its bounds with entirely opaque content—that is, the content should have an alpha value of 1.0. If the view is opaque and either does not fill its bounds or contains wholly or partially transparent content, the results are unpredictable. You should always set the value of this property to NO if the view is fully or partially transparent.
You only need to set a value for the opaque property for subclasses of UIView that draw their own content using the drawRect: method. The opaque property has no effect for system provided classes such as UIButton, UILabel, UITableViewCell, etc.

翻译:

这个属性向绘图系统提供了一个提示,说明它应该如何处理视图。如果设置为YES,绘图系统将视图视为完全不透明的,这允许绘图系统优化一些绘图操作并提高性能。如果设置为NO,绘图系统通常会将视图与其他内容组合在一起。此属性的默认值为YES。

一个不透明的视图应该用完全不透明的内容来填充其边界——也就是说,内容的alpha值应该为1.0。如果视图是不透明的,或者没有填充其边界,或者包含全部或部分透明的内容,那么结果是不可预测的。如果视图是完全透明或部分透明的,您应该始终将此属性的值设置为NO。

您只需要为UIView的子类设置一个不透明属性的值,这些子类使用drawRect:方法绘制它们自己的内容。不透明属性对系统提供的类(如UIButton、UILabel、UITableViewCell等)没有影响。


惨开链接:

1、iOS开发-Alpha,Hidden与Opaque区别


相关文章
|
1月前
|
API 数据安全/隐私保护 iOS开发
利用uni-app 开发的iOS app 发布到App Store全流程
利用uni-app 开发的iOS app 发布到App Store全流程
84 3
|
3月前
|
安全 Android开发 数据安全/隐私保护
请说明鸿蒙操作系统与其他操作系统(如Android和iOS)的主要区别。
请说明鸿蒙操作系统与其他操作系统(如Android和iOS)的主要区别。
59 1
|
3月前
|
存储 iOS开发
iOS 开发,如何进行应用的本地化(Localization)?
iOS 开发,如何进行应用的本地化(Localization)?
122 2
|
6天前
|
API 定位技术 iOS开发
IOS开发基础知识:什么是 Cocoa Touch?它在 iOS 开发中的作用是什么?
【4月更文挑战第18天】**Cocoa Touch** 是iOS和Mac OS X应用的核心框架,包含面向对象库、运行时系统和触摸优化工具。它提供Mac验证的开发模式,强调触控接口和性能,涵盖3D图形、音频、网络及设备访问API,如相机和GPS。是构建高效iOS应用的基础,对开发者至关重要。
9 0
|
21天前
|
开发工具 Swift iOS开发
利用SwiftUI构建动态用户界面:iOS开发新范式
【4月更文挑战第3天】 随着苹果不断推进其软件开发工具的边界,SwiftUI作为一种新兴的编程框架,已经逐渐成为iOS开发者的新宠。不同于传统的UIKit,SwiftUI通过声明式语法和强大的功能组合,为创建动态且响应式的用户界面提供了一种更加简洁高效的方式。本文将深入探讨如何利用SwiftUI技术构建具有高度自定义能力和响应性的用户界面,并展示其在现代iOS应用开发中的优势和潜力。
|
2月前
|
监控 API Swift
用Swift开发iOS平台上的上网行为管理监控软件
在当今数字化时代,随着智能手机的普及,人们对于网络的依赖日益增加。然而,对于一些特定场景,如家庭、学校或者企业,对于iOS设备上的网络行为进行管理和监控显得尤为重要。为了满足这一需求,我们可以利用Swift语言开发一款iOS平台上的上网行为管理监控软件。
196 2
|
2月前
|
Java 测试技术 API
安卓APP和iOS APP在测试上的区别是什么?
安卓APP和iOS APP在测试上的区别是什么?
|
3月前
|
数据可视化 iOS开发
iOS 开发,什么是 Interface Builder(IB)?如何使用 IB 构建用户界面?
iOS 开发,什么是 Interface Builder(IB)?如何使用 IB 构建用户界面?
40 4
|
3月前
|
存储 数据建模 数据库
IOS开发数据存储:什么是 UserDefaults?有哪些替代方案?
IOS开发数据存储:什么是 UserDefaults?有哪些替代方案?
39 0