iOS设置阴影

iOS设置阴影,第1张

在通过这样的方式设置阴影时,必须把父视图的masksToBounds属性关掉,因为阴影设置的方式就是加offset给超出视图部分设置颜色来实现的,一旦不让子视图超出,阴影也就看不出了。

圆角+阴影:

如果上面的方法一起用,把masksToBounds开了,阴影无法显示,关了的话其上的View又会遮住圆角。解决的方式只能是再加一层layer。

swift版:

shadowoffset: +, + 是右下 -,+是左下 +,-是右上 -,-是左上

在iOS中常见的特性中有有阴影,下面我将详细阐述一下关于视图阴影的故事

iOS中阴影的属性是 shadowOpacity 它的默认值是0,只要设置一个大于0的值就会在视图的上面出现阴影的效果,但它的浮点值在0~1之间.

但你会发现其阴影的特点是上面阴影效果最明显,左右也有阴影效果,但是在下面是没有的阴影的,因为系统在设置阴影效果时设置了默认的阴影偏移量,你可以通过另一个属性 shadowOffset 来改变阴影的偏移效果,它的类型值是CGSize类型(当 shadowOffset 的值设为 CGSizeMake(0, 0) 时,四周就都会出现阴影)

改变阴影效果的属性还有一个是 shadowRadius , 它的效果是阴影的半径,其值越大,阴影效果就越明显.

但是当我们在给 imageView 添加阴影效果时也会有效果,但是在当我们在设置视图的圆角时,我们会发现阴影效果就消失了,这很让人头疼,下面我将提供一个解决办法,其实很简单,只要在 ImageView 下面铺一个 view 就可以解决问题了,但要注意的是下面的 view 不要给颜色,要一个透明view,同时设置阴影效果,并且不设置圆角, ImageView 不用设置阴影,但要设置圆角,这样就可以解决问题了.

  iOS的一个常见特性--阴影。阴影往往可以达到图层深度暗示的效果。 也能够用来强调正在显示的图层和优先级(比如说一个在其他视图之前的d出 框),不过有时候他们只是单纯的装饰目的。

  给shadowOpacity属性一个大于默认值(也就是0)的值,阴影就可以显示在任意图层之下。 shadowOpacity是一个必须在0.0(不可见)和1.0(完全不透明)之间的浮点数。如果设置为1.0,将会显示一个有轻微模糊的黑色阴影稍微在图层之上。若要改动阴影的表现,你可以使用CALayer的另外三个属性: shadowColor,shadowOffset 和 shadowRadius 。

  显而易见, shadowColor属性控制着阴影的颜色,和borderColor一样,它的类型也是CGColorRef 。阴影默认是黑色,大多数时候你需要的阴影也是黑色的(其他颜色的阴影看起来是不是有一点点奇怪。。)。

  shadowOffset 属性控制着阴影的方向和距离。它是一个CGSize的值,宽度控制这阴影横向的位移,高度控制着纵向的位移。 shadowOffset的默认值是 {0, -3},意即阴影相对于Y轴有3个点的向上位移。

  为什么要默认向上的阴影呢?尽管Core Animation是从图层套装演变而来(可以 认为是为iOS创建的私有动画框架),但是呢,它却是在Mac OS上面世的,二者的Y轴是颠倒的。这就导致了默认的3个点位移的阴影是向上的。在Mac 上,shadowOffset 的默认值是阴影向下的,这样你就能理解为什么iOS上的阴影 方向是向上的了。

  苹果更倾向于用户界面的阴影应该是垂直向下的,所以在iOS把阴影宽度设为0,然后高度设为一个正值不失为一个做法。

  shadowRadius 属性控制着阴影的模糊度,当它的值是0的时候,阴影就和视图 一样有一个非常确定的边界线。当值越来越大的时候,边界线看上去就会越来越模 糊和自然。苹果自家的应用设计更偏向于自然的阴影,所以一个非零值再合适不过 。

  通常来讲,如果你想让视图或控件非常醒目独立于背景之外(比如d出框遮罩 层),你就应该给 shadowRadius 设置一个稍大的值。阴影越模糊,图层的深度 看上去就会更明显。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11641161.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存