iOS 阴影

来源:互联网 发布:帝国cms 全站伪静态 编辑:程序博客网 时间:2024/05/16 20:28

      现在很多的页面中多半会使用阴影效果,给人一种凸出感,在开发中的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];        

效果如下: