如何在ios中动态调整阴影高度?

Shu*_*war 2 dynamic shadow rounded-corners uiview ios

我用阴影将阴影添加到视图中corners并且它有效.但是当frame视图更改时,shadow根据视图不会改变其大小.我尝试过以下方法:

-(void)addShadow:(UIView *)view withCornerRad : (int)radius{
    view.clipsToBounds = YES;
    CALayer *ViewLayer = view.layer;
    [ViewLayer setMasksToBounds:NO ];
    ViewLayer.shadowColor = [UIColor lightGrayColor].CGColor;
    ViewLayer.shadowOpacity = 1.0 ;
    ViewLayer.shadowRadius = 2.0 ;
    ViewLayer.shadowOffset = CGSizeMake( 0 , 0 );
    ViewLayer.cornerRadius = radius;
    ViewLayer.shadowPath = [UIBezierPath bezierPathWithRect:view.bounds].CGPath;
} 
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

在此输入图像描述

Eug*_*aro 6

根据Apples视图编程指南:

视图负责绘制内容,处理多点触控事件以及管理任何子视图的布局.

因此,您可以通过两种方式更改阴影:1.通过使用覆盖layoutSubviews函数对UIView进行子类化,您可以在其中设置新的阴影大小.2.您可以覆盖控制器viewDidLayoutSubviews()方法,您可以在其中设置新的阴影大小.

最好的祝福!