iOS的一个常见特性--阴影。阴影往往可以达到图层深度暗示的效果。 也能够用来强调正在显示的图层和优先级(比如说一个在其他视图之前的弹出 框),不过有时候他们只是单纯的装饰目的。
给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的时候,阴影就和视图 一样有一个非常确定的边界线。当值越来越大的时候,边界线看上去就会越来越模 糊和自然。苹果自家的应用设计更偏向于自然的阴影,所以一个非零值再合适不过 。
通常来讲,如果你想让视图或控件非常醒目独立于背景之外(比如弹出框遮罩 层),你就应该给 shadowRadius 设置一个稍大的值。阴影越模糊,图层的深度 看上去就会更明显。
iOS 阴影简介
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- >嗯,圆和椭圆还不错,但如果是带圆角的矩形呢? >我们现在能做到那样了么? >史蒂芬·乔布斯 我们在第三章『图层几...
- 本文转载自:http://www.cocoachina.com/ios/20150104/10816.html ...
- 嗯,圆和椭圆还不错,但如果是带圆角的矩形呢? 我们现在能做到那样了么? 史蒂芬·乔布斯 我们在第三章『图层几何学』...