view添加阴影无效

需求:需要给cell里的imageview添加阴影

问题:按照标准的代码添加阴影,然并卵:代码如下:

    imageview.layer.shadowColor = [[UIColor blackColor] CGColor];
    imageview.layer.shadowOffset = CGSizeMake(4.0f, 4.0f);
    imageview.layer.shadowRadius = 4.0;
    imageview.layer.shadowOpacity = 0.5;

后谷歌说要加一句:

imageview.layer.masksToBounds = NO;,因为阴影是在imagview的layer外面画的

这样阴影出来了,然而,由于允许子元素超出父元素,所以图片的大小就不一样了

因此歪果仁提出了一个办法,创建两层view,内层view是imageview,不允许超出边界,外层view是shadowview,ref:

http://www.innofied.com/implementing-shadow-ios/(这个是为了解决圆角view+阴影的问题)

代码:

CALayer *sublayer = [[CALayer layer]initWithLayer:self.imageView.layer];

    UIView * shadow = [[UIView alloc] initWithFrame:self.imageView
                       .frame];
    shadow.userInteractionEnabled = NO; // Modify this if needed
    shadow.layer.shadowColor = [[UIColor blackColor] CGColor];
    shadow.layer.shadowOffset = CGSizeMake(4.0f, 4.0f);
    shadow.layer.shadowRadius = 4.0;
    shadow.layer.masksToBounds = NO;   //关键
    shadow.clipsToBounds = NO;
    shadow.layer.shadowOpacity = 0.5;
    [ self.imageView.superview insertSubview:shadow belowSubview: self.imageView];
    [shadow addSubview:self.imageView];
时间: 2024-10-05 17:40:12

view添加阴影无效的相关文章

ios开发之--为父view上的子view添加阴影

项目中碰到一个问题,在tableview的headerview里面有很一个子view,设计师的要求是在下方添加一个阴影,效果如下: 以前的实现思路就是,代码如下: 添加阴影 调用视图的 layer CALayer *layer = [imageView layer]; layer.shadowOffset = CGSizeMake(0, 3); //(0,0)时是四周都有阴影 layer.shadowRadius = 5.0; layer.shadowColor = [UIColor black

view添加阴影

//@mg:masksToBounds必须为NO否者阴影没有效果 //    cell.layer.masksToBounds = NO; cell.layer.contentsScale = [UIScreen mainScreen].scale; cell.layer.shadowOpacity = 0.15f; cell.layer.shadowRadius = 2.0f; cell.layer.shadowOffset = CGSizeMake(0,0); cell.layer.shad

android 给view添加阴影

1.方法一: 使用 CardView 布局 <android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_he

Swift - 给图片和按钮添加阴影边框

最近比较忙,想要做的事情有很多,能做出来的就只有一部份,我觉得也许是我没有计划和规律造成的,我需要坚持下去,今天写了一个swift2.0给按钮或者图片添加阴影的效果,就当做笔记吧:-) Swift Code: let image1 = UIImageView(frame: CGRectMake(20,50,self.view.frame.width-50,180)) image1.image = UIImage(named: "sea.jpg") self.view.addSubvie

自定义控件三部曲之绘图篇(十七)——为Bitmap添加阴影并封装控件

前言:再重复一遍我很喜欢的一句话,送给大家:迷茫,本就是青春该有的样子 ,但不要让未来的你,讨厌现在的自己 上篇给大家讲解了如何控件添加阴影效果,但是在为Bitmap图片添加阴影时,却没办法添加具有指定颜色的阴影,这篇我们就来使用自定义的控件及自定义属性来初步封装下控件.前方高能预警--本篇内容涉及内容较多,难度较大,需要多加思考. 一.使用BlurMaskFilter为图片构造定色阴影效果 上面我们讲了通过setShadowLayer为图片添加阴影效果,但是图片的的阴影是用原图形的副本加上边缘

iOS--为视图添加阴影

iOS–为视图添加阴影 情况一:视图添加圆角,在添加阴影 //阴影视图 self.viewShadow = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 100, 100)]; self.viewShadow.backgroundColor = [UIColor redColor]; self.viewShadow.layer.shadowOpacity = 1; self.viewShadow.layer.cornerRadius = 5; sel

给view 添加事件

//绑定图片点击事件 UITapGestureRecognizer *g=[[UITapGestureRecognizeralloc]initWithTarget:selfaction:@selector(btnNext:)]; g.numberOfTapsRequired = 1; g.numberOfTouchesRequired=1; [viewBottomaddGestureRecognizer:g]; 给view 添加事件,布布扣,bubuko.com

往一个控制器的View添加另一个控制器的View出现的异常

往一个控制的view上添加另一个控制器的View,(由于layout缘故)可能视图会发生异常,出现伸缩(被添加视图的view变小,或者变大),所以应该设置被添加控制器的View的属性,让他不随父控件的变化而变化, 被添加控制器.view.autoresizingMask = UIViewAutoresizingNone; 往一个控制器的View添加另一个控制器的View出现的异常,布布扣,bubuko.com

给view添加类似系统上拉快捷菜单的手势

iOS7以后从屏幕最下方上划会滑出快捷菜单,感觉这个效果不错,就想做个类似的效果,这个东西技术含量不高,每次都写一遍的话就太浪费时间了,所以就把它写成了一个分类,用起来会方便一点. demo地址:https://github.com/Phelthas/TEST_XMLCommon 使用效果如下: (注:动画使用了facebook的pop) 实现方案: 1,用分类的方式给view添加了一个 - (void)addPanGestureWithEndFrame:(CGRect)endFrame;的方法