`
shappy1978
  • 浏览: 703073 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Add shadow to UIView

 
阅读更多

效果图:

 

以下代码实现:

第一个图片的代码

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



第二个图片的代码

 

  1. _imageView1.layer.shadowColor = [UIColor yellowColor].CGColor;//shadowColor阴影颜色   
  2. _imageView1.layer.shadowOffset = CGSizeMake(0,0);//shadowOffset阴影偏移,默认(0, -3),这个跟shadowRadius配合使用   
  3. _imageView1.layer.shadowOpacity = 1;//阴影透明度,默认0   
  4. _imageView1.layer.shadowRadius = 3;//阴影半径,默认3   
  5.   
  6. //路径阴影   
  7. UIBezierPath *path = [UIBezierPath bezierPath];  
  8.   
  9. float width = _imageView1.bounds.size.width;  
  10. float height = _imageView1.bounds.size.height;  
  11. float x = _imageView1.bounds.origin.x;  
  12. float y = _imageView1.bounds.origin.y;  
  13. float addWH = 10;  
  14.   
  15. CGPoint topLeft      = _imageView1.bounds.origin;  
  16. CGPoint topMiddle = CGPointMake(x+(width/2),y-addWH);  
  17. CGPoint topRight     = CGPointMake(x+width,y);  
  18.   
  19. CGPoint rightMiddle = CGPointMake(x+width+addWH,y+(height/2));  
  20.   
  21. CGPoint bottomRight  = CGPointMake(x+width,y+height);  
  22. CGPoint bottomMiddle = CGPointMake(x+(width/2),y+height+addWH);  
  23. CGPoint bottomLeft   = CGPointMake(x,y+height);  
  24.   
  25.   
  26. CGPoint leftMiddle = CGPointMake(x-addWH,y+(height/2));  
  27.   
  28. [path moveToPoint:topLeft];  
  29. //添加四个二元曲线   
  30. [path addQuadCurveToPoint:topRight  
  31.              controlPoint:topMiddle];  
  32. [path addQuadCurveToPoint:bottomRight  
  33.              controlPoint:rightMiddle];  
  34. [path addQuadCurveToPoint:bottomLeft  
  35.              controlPoint:bottomMiddle];  
  36. [path addQuadCurveToPoint:topLeft  
  37.              controlPoint:leftMiddle];  
  38. //设置阴影路径   
  39.  _imageView1.layer.shadowPath = path.CGPath;  
    _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!

分享到:
评论

相关推荐

    UIView动画

    UIView 动画 UIView动画

    ios中关于uiview

    在iOS开发中,`UIView`是构建用户界面的基础,几乎所有的可见元素都基于它。`UIView`不仅负责绘制和显示内容,还处理用户的交互事件。以下是对标题和描述中涉及的`UIView`知识点的详细解释: 1. **Bounds和Frame的...

    UIView 保存为图片

    .cropping(to: rect) else { return nil } let newImage = UIImage(cgImage: cgImage) return newImage } ``` 这里,`rect`参数是你想要裁剪的区域,它以图像的坐标系为基准。注意,裁剪的坐标原点位于图像左上角...

    iOS实现UIView渐变效果

    customView.gradientDirection = .topToBottom // 例如,从上到下的渐变 view.addSubview(customView) ``` 总的来说,实现UIView的渐变效果并不复杂,但封装成易于使用的组件可以使代码更简洁,也方便了开发者快速...

    UIView/UIButton任意添加某个边框

    path.addLine(to: CGPoint(x: bounds.maxX, y: bounds.minY)) case .left: path.move(to: CGPoint(x: bounds.maxX, y: bounds.minY)) path.addLine(to: CGPoint(x: bounds.maxX, y: bounds.maxY)) case .right:...

    UIView分类

    UIView+Extension 对view的一个扩展

    UIView的生命周期

    UIView的生命周期对于理解iOS应用中视图的加载和管理至关重要。在开发iOS应用时,了解UIView及其子类的生命周期方法,可以让开发者合理地安排资源的分配和释放,优化应用的性能,以及提供更好的用户体验。 首先,...

    UIView AutoLayout.zip

    `UIView AutoLayout`是这个机制的一个扩展,为`UIView`类添加了分类,提供了更加简洁易用的接口来设置自动布局约束。这个压缩包"UIView AutoLayout.zip"包含的项目名为"UIView-AutoLayout-master",很可能是GitHub上...

    UIView转化为ImageDemo

    1. **渲染到图形上下文(Render to Graphics Context)**: 在iOS中,我们可以使用`UIGraphicsBeginImageContextWithOptions`函数来创建一个新的图形上下文。这个上下文可以理解为一个画布,我们可以在上面绘制图像...

    UIView镂空

    【标题】:“UIView镂空”技术详解 在iOS开发中,`UIView`是构建用户界面的基础组件,我们经常需要对其进行各种定制以满足独特的设计需求。其中,“UIView镂空”是一种特殊的视图处理技巧,用于在视图上创建透明...

    uiview随手势旋转

    "uiview随手势旋转"这个主题,就是关于如何利用手势识别来实现UIView的旋转效果。 `KTOneFingerRotationGestureRecognizer`是一个自定义的手势识别类,它是对苹果内置的`UIGestureRecognizer`类的扩展。`...

    UIView+AZGradient.zip

    + (UIView *_Nullable)az_gradientViewWithColors:(NSArray*> *_Nullable)colors locations:(NSArray*> *_Nullable)locations startPoint:(CGPoint)startPoint endPoint:(CGPoint)endPoint; - (void)az_...

    UIView Shadow Maker(iPhone源代码)

    来源:Licence:BSD平台:iOS设备:iPhone ... 例如,效果图的左边UIView是四周加上黑色半透明阴影,右边UIView是上下边框各加上绿色不透明阴影。 [优才 · Code4App]编译测试,适用环境:Xcode 4.5, iOS 5.0 以上。

    UIView+RectCorner

    在iOS开发中,`UIView`是界面布局中最基础的组件,用于展示各种用户界面元素。`UIView+RectCorner`是一个自定义的类别(Category),它为`UIView`添加了额外的功能,使我们能够轻松地为视图添加圆角,而无需深入到...

    Swift自定义UIView动画

    在iOS开发中,Swift语言为开发者提供了丰富的工具来创建引人入胜的用户界面,其中自定义UIView动画是一项重要的技术。这篇博客文章“Swift自定义UIView动画”详细讲解了如何利用Swift来实现对UIView的动态效果,使得...

    iOS中UIView的翻页动画demo

    在iOS开发中,UIView是构建用户界面的基本元素,它提供了丰富的功能来展示各种视图内容。本示例“iOS中UIView的翻页动画demo”旨在演示如何为UIView实现逼真的翻页效果,让用户体验如同翻阅实体书页一样的平滑过渡。...

    UIView的介绍,OC版的

    `UIView`是iOS应用开发中的核心组件,它在Objective-C(OC)中扮演着重要的角色。本文将深入探讨`UIView`的基本概念、重要属性、方法以及它在iOS界面构建中的作用。 首先,`UIView`是UIKit框架中的一个基础类,它是...

    UIView-Positioning, 在UIView对象中,基于简单属性的框架属性设置.zip

    UIView-Positioning, 在UIView对象中,基于简单属性的框架属性设置 uiview定位收费 UIView Positioning 是一个快速扩展,它提供简单的shorthand 方法,以方便的方式定义任何UIView对象的框架属性( 宽度,高度,x,y ...

    UIView+Utils

    在iOS开发中,`UIView`是界面布局和交互的基础组件,它构成了所有用户界面元素的基础。`UIView+Utils`是一个自定义的类别,为`UIView`添加了额外的功能,使得开发者能够更便捷地处理视图的相关尺寸计算和操作。这个...

    swift-ShadowView让你能够轻松在UIView上实现阴影效果

    ShadowView 让你能够轻松在UIView上实现阴影效果

Global site tag (gtag.js) - Google Analytics