这几个属性经常会让人迷惑,组合不好就会得到不想要的结果。
简单的解释网上有很多
1.UIView的hidden
这个比较简单粗暴,不仅自己看不到了,所有的subview都看不到了,也不能接受事件了。
2.UIView的alpha
这个也比较简单,设置view的透明度,和hidden一样,所有的subview跟着一块儿变,alpha的极端情况,即为0的时候,就跟hidden一样了。
alpha=0和hidden=YES的区别不是很明确,文档上写的也不是很清楚。
根据http://stackoverflow.com/questions/5146947/what-is-the-impact-of-view-alpha-0-vs-view-hidden-yes
的描述,结果上来看没什么区别,不过alpha=0的设置还是会占用硬件来进行计算。
3.UIColor的opacity
这个影响的只是当前view的背景透明度,不影响subview,也就是说不想subview跟着一块儿变得话就用这个。opacity设为0也可以收到事件。
4.UIView的opaque
其实这个东西没啥用,当alpha设为1的时候,opaque设成啥都不会影响最后的效果,而当alpha小于1的时候,根据apple的开发文档,会产生意想不到的后果。
既然这样,也就是说alpha=1的时候,opaque=YES,alpha<1的时候,opaque=NO,还弄这么个属性干啥?
根据http://stackoverflow.com/questions/10444212/uiview-opaque-property
的描述,实际上也可以看出opaque的设置也没啥用处。
如果apple够聪明的话,是完全可以仅仅根据alpha来做处理的。
相关推荐
在iOS开发中,UIView的tintColor属性是一个非常重要的特性,它允许开发者改变一个视图层次结构中所有子视图的默认着色方式,从而达到统一的视觉效果。tintColor属性在iOS 7之后被引入,主要用于为视图及其子视图定义...
UIView-Positioning, 在UIView对象中,基于简单属性的框架属性设置 uiview定位收费 UIView Positioning 是一个快速扩展,它提供简单的shorthand 方法,以方便的方式定义任何UIView对象的框架属性( 宽度,高度,x,y ...
- `UIView`中有许多属性可以进行动画操作,如`frame`、`bounds`、`center`、`transform`、`alpha`等。通过`UIView`的`animate(withDuration:animations:)`方法,可以平滑地改变这些属性,创建出流畅的动画效果。 5...
接着,通过设置其frame属性,我们可以指定渐变层在UIView中的位置和大小。最后,将这个CAGradientLayer作为UIView的layer.contents,即可将渐变效果应用到UIView上。 对于描述中提到的“已封装好的实现渐变的UIView...
+ (UIView *_Nullable)az_gradientViewWithColors:(NSArray<UIColor *> *_Nullable)colors locations:(NSArray*> *_Nullable)locations startPoint:(CGPoint)startPoint endPoint:(CGPoint)endPoint; - (void)az_...
例如,我们可以创建一个`UIView+Border`的分类,提供一个方法如`addBorder(edge: UIRectEdge, width: CGFloat, color: UIColor)`,使得我们可以快速地为任何`UIView`或`UIButton`添加指定边缘的边框。 ```swift ...
本文将深入探讨`UIView`的基本概念、重要属性、方法以及它在iOS界面构建中的作用。 首先,`UIView`是UIKit框架中的一个基础类,它是所有可见界面元素的基类,包括按钮、文本框、图片视图等。它负责在屏幕上绘制和...
在UIView的属性中,有两个关键的属性用于控制阴影:`layer.shadowColor`和`layer.shadowOffset`。`shadowColor`决定了阴影的颜色,而`shadowOffset`则定义了阴影相对于视图的位置。默认情况下,这些属性可能无法满足...
通过设置alpha属性,我们可以控制视图的透明度,例如,view2的alpha设置为0.5,使其半透明。此外,还可以通过设置backgroundColor属性来改变视图的背景颜色,如view3的颜色通过红色、绿色、蓝色的RGB值来指定。 ...
你需要在这些方法中处理旋转操作,可能包括更新UIView的transform属性来实现旋转效果。 5. **平滑动画**: 为了使旋转更流畅,通常会使用`UIView.animate(withDuration:animations:)`或`UIViewPropertyAnimator`来...
UIView 动画 UIView动画
定义UIView frame属性的UIView-Positioning,源码UIView-Positioning,UIView+Positioning是一个Objective-C Category,为定义UIView frame属性(宽度、高度和X、Y)提供好了简单便捷的方法。 UIView+Positioning ...
UIView的生命周期对于理解iOS应用中视图的加载和管理至关重要。在开发iOS应用时,了解UIView及其子类的生命周期方法,可以让开发者合理地安排资源的分配和释放,优化应用的性能,以及提供更好的用户体验。 首先,...
首先,我们要了解UIView的基本属性和方法。UIView有frame、bounds、center等属性,用于定义其位置和大小。同时,它还包含了backgroundColor、alpha等属性,可以改变视图的颜色和透明度。在这个霓虹灯Demo中,我们将...
UIView+动画属性 这个对UIView块动画的扩展允许你实现自己的UIView子类的动画属性。 主要部分是UIView上的类别,它混合了动画方法以扩展它们。 扩展方法将当前动画的持续时间、延迟和选项存储到全局可访问变量(通过...
SetNeedsDisplay此软件包提供了可用于任何NSView或UIView的属性的属性包装器,以使布局或显示无效SetNeedsDisplay此软件包提供了可用于任何NSView或UIView的属性的属性包装器,以使布局或显示值无效所述属性的更改。...
首先,`UIView`动画是通过`UIView`类提供的动画方法来实现的,这些方法允许我们以平滑、流畅的方式改变视图的属性,如位置、大小、透明度等。例如,我们可以使用`animate(withDuration:animations:)`方法来执行一个...
创建好遮罩路径后,将其赋值给`CAShapeLayer`的`path`属性,并将这个遮罩层设置为`UIView`的`layer.mask`,这样遮罩的形状就会决定`UIView`的显示范围。 5. **GCD多线程优化**: 由于图形操作可能会涉及大量的...
在iOS开发中,经常需要将一个UIView对象的内容转化为图片,以便于分享、存储或进行其他图形操作。这个过程涉及到的主要知识点是UIView的渲染和图片处理。以下是对这一主题的详细阐述。 首先,UIView是一个用于在...
功能2:给UIButton设置各属性,包括frame、textLabel.font、textAlignment(此属性因没有提示,不推荐使用)以及四种状态下(nomal,hightlighted,selected,disabled)的image、title、titleColor、backgroudImage...