iOS 阴影

      现在很多的页面中多半会使用阴影效果,给人一种凸出感,在开发中的UIView提供了此类属性值。

代码如下:


    
    UIView* bodyView = [[UIView alloc] initWithFrame:CGRectMake(30, 200, [UIScreen mainScreen].bounds.size.width - 60, 200)];
    
    bodyView.backgroundColor = [UIColor whiteColor];
    bodyView.layer.masksToBounds = NO;//显示阴影,必须为NO
    bodyView.layer.contentsScale = [UIScreen mainScreen].scale;
    
    /**
     *
     *  给shadowOpacity属性一个大于默认值(也就是0)的值,阴影就可以显示在任意图层之下。shadowOpacity是一个必须在0.0(不可见)和
     *  1.0(完全不透明)之间的浮点数。如果设置为1.0,将会显示一个有轻微模糊的黑色阴影稍微在图层之上。若要改动阴影的表现,你可以使用
     *  CALayer的另外三个属性:shadowColor,shadowOffset和shadowRadius。
     *
     */
    bodyView.layer.shadowOpacity = 0.75f;
    
    /**
     *  shadowRadius属性控制着阴影的模糊度,当它的值是0的时候,阴影就和视图一样有一个非常确定的边界线。当值越来越大的时候,
     *  边界线看上去就会越来越模糊和自然。苹果自家的应用设计更偏向于自然的阴影,所以一个非零值再合适不过了。
     */
    bodyView.layer.shadowRadius = 4.0f;
    
    /**
     *  阴影颜色
     */
    bodyView.layer.shadowColor = [UIColor lightGrayColor].CGColor;
    
    /**
     *  shadowOffset属性控制着阴影的方向和距离。它是一个CGSize的值,宽度控制这阴影横向的位移,高度控制着纵向的位移。
     *  shadowOffset的默认值是 {0, -3},意即阴影相对于Y轴有3个点的向上位移。
     */
    bodyView.layer.shadowOffset = CGSizeMake(0, 0);
    
    bodyView.layer.shadowPath = [UIBezierPath bezierPathWithRect:bodyView.bounds].CGPath;
    
    //设置缓存
    bodyView.layer.shouldRasterize = YES;
    
    //设置抗锯齿边缘
    bodyView.layer.rasterizationScale = [UIScreen mainScreen].scale;
    bodyView.layer.cornerRadius = 6.0f;
    
    
    [self.view addSubview:bodyView];
    
    

效果如下:







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值