(转载)ios之为UIView设置阴影(CALayer的shadowColor,shadowOffset,shadowOpacity,shadowRadius,shadowPath属性)

简介: 原文地址:http://blog.csdn.net/rhljiayou/article/details/10178723效果图:以下代码实现:第一个图片的代码//加阴影--任海丽编辑 _imageView.

原文地址:http://blog.csdn.net/rhljiayou/article/details/10178723

效果图:


img_845f834c57c952d625945213a6bee21f.jpe

以下代码实现:
第一个图片的代码

//加阴影--任海丽编辑  
    _imageView.layer.shadowColor = [UIColor blackColor].CGColor;//shadowColor阴影颜色  
    _imageView.layer.shadowOffset = CGSizeMake(4,4);//shadowOffset阴影偏移,x向右偏移4,y向下偏移4,默认(0, -3),这个跟shadowRadius配合使用  
    _imageView.layer.shadowOpacity = 0.8;//阴影透明度,默认0  
    _imageView.layer.shadowRadius = 4;//阴影半径,默认3  

第二个图片的代码

_imageView1.layer.shadowColor = [UIColor yellowColor].CGColor;//shadowColor阴影颜色  
_imageView1.layer.shadowOffset = CGSizeMake(0,0);//shadowOffset阴影偏移,默认(0, -3),这个跟shadowRadius配合使用  
_imageView1.layer.shadowOpacity = 1;//阴影透明度,默认0  
_imageView1.layer.shadowRadius = 3;//阴影半径,默认3  

//路径阴影  
UIBezierPath *path = [UIBezierPath bezierPath];  
  
float width = _imageView1.bounds.size.width;  
float height = _imageView1.bounds.size.height;  
float x = _imageView1.bounds.origin.x;  
float y = _imageView1.bounds.origin.y;  
float addWH = 10;  
  
CGPoint topLeft      = _imageView1.bounds.origin;  
CGPoint topMiddle = CGPointMake(x+(width/2),y-addWH);  
CGPoint topRight     = CGPointMake(x+width,y);  
  
CGPoint rightMiddle = CGPointMake(x+width+addWH,y+(height/2));  
  
CGPoint bottomRight  = CGPointMake(x+width,y+height);  
CGPoint bottomMiddle = CGPointMake(x+(width/2),y+height+addWH);  
CGPoint bottomLeft   = CGPointMake(x,y+height);  
  
  
CGPoint leftMiddle = CGPointMake(x-addWH,y+(height/2));  
  
[path moveToPoint:topLeft];  
//添加四个二元曲线  
[path addQuadCurveToPoint:topRight  
             controlPoint:topMiddle];  
[path addQuadCurveToPoint:bottomRight  
             controlPoint:rightMiddle];  
[path addQuadCurveToPoint:bottomLeft  
             controlPoint:bottomMiddle];  
[path addQuadCurveToPoint:topLeft  
             controlPoint:leftMiddle];  
//设置阴影路径  
 _imageView1.layer.shadowPath = path.CGPath;  

ok!

目录
相关文章
|
2月前
|
iOS开发 UED 开发者
iOS 手势中cancelsTouchesInView delaysTouchesBegan delaysTouchesEnded 三种属性的使用
iOS 手势中cancelsTouchesInView delaysTouchesBegan delaysTouchesEnded 三种属性的使用
92 9
|
3月前
|
Swift iOS开发
iOS开发-属性的内存管理
【8月更文挑战第12天】在iOS开发中,属性的内存管理至关重要,直接影响应用性能与稳定性。主要策略包括:`strong`(强引用),不维持对象生命期,可用于解除循环引用;`assign`(赋值),适用于基本数据类型及非指针对象属性;`copy`,复制对象而非引用,确保对象不变性。iOS采用引用计数管理内存,ARC(自动引用计数)自动处理引用增减,简化开发。为避免循环引用,可利用弱引用或Swift中的`[weak self]`。最佳实践包括:选择恰当的内存管理策略、减少不必要的强引用、及时释放不再使用的对象、注意block内存管理,并使用Xcode工具进行内存分析。
|
2月前
|
图形学 iOS开发 Android开发
从Unity开发到移动平台制胜攻略:全面解析iOS与Android应用发布流程,助你轻松掌握跨平台发布技巧,打造爆款手游不是梦——性能优化、广告集成与内购设置全包含
【8月更文挑战第31天】本书详细介绍了如何在Unity中设置项目以适应移动设备,涵盖性能优化、集成广告及内购功能等关键步骤。通过具体示例和代码片段,指导读者完成iOS和Android应用的打包与发布,确保应用顺利上线并获得成功。无论是性能调整还是平台特定的操作,本书均提供了全面的解决方案。
150 0
|
5月前
|
前端开发 iOS开发
input框设置placeholder属性在iOS中显示不完整
input框设置placeholder属性在iOS中显示不完整
72 1
|
6月前
|
安全 开发者 iOS开发
iOS16系统手机设置开启开发者模式才能安装ipa包
iOS16系统手机设置开启开发者模式才能安装ipa包
215 1
|
6月前
按钮的image图片是非圆角,直接对UIButton设置圆角,iOS13系统没有圆角效果的问题及解决方案
按钮的image图片是非圆角,直接对UIButton设置圆角,iOS13系统没有圆角效果的问题及解决方案
49 0
|
1月前
|
Java Android开发 Swift
安卓与iOS开发对比:平台选择对项目成功的影响
【10月更文挑战第4天】在移动应用开发的世界中,选择合适的平台是至关重要的。本文将深入探讨安卓和iOS两大主流平台的开发环境、用户基础、市场份额和开发成本等方面的差异,并分析这些差异如何影响项目的最终成果。通过比较这两个平台的优势与挑战,开发者可以更好地决定哪个平台更适合他们的项目需求。
110 1
|
7天前
|
安全 数据处理 Swift
深入探索iOS开发中的Swift语言特性
本文旨在为开发者提供对Swift语言在iOS平台开发的深度理解,涵盖从基础语法到高级特性的全面分析。通过具体案例和代码示例,揭示Swift如何简化编程过程、提高代码效率,并促进iOS应用的创新。文章不仅适合初学者作为入门指南,也适合有经验的开发者深化对Swift语言的认识。
25 9
|
7天前
|
Android开发 Swift iOS开发
探索安卓与iOS开发的差异和挑战
【10月更文挑战第37天】在移动应用开发的广阔舞台上,安卓和iOS这两大操作系统扮演着主角。它们各自拥有独特的特性、优势以及面临的开发挑战。本文将深入探讨这两个平台在开发过程中的主要差异,从编程语言到用户界面设计,再到市场分布的不同影响,旨在为开发者提供一个全面的视角,帮助他们更好地理解并应对在不同平台上进行应用开发时可能遇到的难题和机遇。
|
5天前
|
iOS开发 开发者
探索iOS开发中的SwiftUI框架
【10月更文挑战第39天】在苹果的生态系统中,SwiftUI框架以其声明式语法和易用性成为开发者的新宠。本文将深入SwiftUI的核心概念,通过实际案例展示如何利用这一框架快速构建用户界面,并探讨其对iOS应用开发流程的影响。