我使用圆形 corners 将阴影添加到 View 中,并且它有效。但是当 View 的 frame 更改时,shadow 不会根据 View 更改其大小。
我尝试了以下方法:

-(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;
}

最佳答案

根据 Apples view programming guide :



所以你可以通过两种方式改变你的影子:
1. 通过覆盖 layoutSubviews 函数继承 UIView,您可以在其中设置新的阴影大小。
2. 您可以覆盖您的 Controller viewDidLayoutSubviews() 方法,您可以在其中设置新的阴影大小。

此致!

关于ios - 如何在ios中根据视野高度动态调整阴影?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37834933/

10-15 14:08