需求:需要给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+阴影的问题)

代码:

//注意这个layer一定添加在imageview被add后面
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];

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

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

    项目中碰到一个问题,在tableview的headerview里面有很一个子view,设计师的要求是在下方添加一个阴影,效果如下: 以前的实现思路就是,代码如下: 添加阴影 调用视图的 layer C ...

  2. view添加阴影

    //@mg:masksToBounds必须为NO否者阴影没有效果 //    cell.layer.masksToBounds = NO; cell.layer.contentsScale = [UI ...

  3. android 给view添加阴影

    1.方法一: 使用 CardView 布局 <android.support.v7.widget.CardView xmlns:android="http://schemas.andr ...

  4. iOS--为视图添加阴影

    iOS–为视图添加阴影 情况一:视图添加圆角,在添加阴影 //阴影视图 self.viewShadow = [[UIView alloc]initWithFrame:CGRectMake(0, 0, ...

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

    最近比较忙,想要做的事情有很多,能做出来的就只有一部份,我觉得也许是我没有计划和规律造成的,我需要坚持下去,今天写了一个swift2.0给按钮或者图片添加阴影的效果,就当做笔记吧:-) Swift C ...

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

    iOS7以后从屏幕最下方上划会滑出快捷菜单,感觉这个效果不错,就想做个类似的效果,这个东西技术含量不高,每次都写一遍的话就太浪费时间了,所以就把它写成了一个分类,用起来会方便一点. demo地址:ht ...

  7. TextView的一些高级应用(自定义字体、显示多种颜色、添加阴影)

    1.    自定义字体可以使用setTypeface(Typeface)方法来设置文本框内文本的字体,而android的Typeface又使用TTF字体文件来设置字体所以,我们可以在程序中放入TTF字 ...

  8. 给View添加手势,防止点击View上其他视图触发点击效果

    在开发过程中,我们可能会遇到这个问题. 当我们给一个view添加了手势,但是我们又不想点击view上面的视图也触发手势.如下图: 我们在红色view上添加了手势,但是又不想点击黄色view也触发.其实 ...

  9. Android查缺补漏(View篇)--自定义 View 中 wrap_content 无效的解决方案

    自定义 View 中 wrap_content 无效的解决方案 做过自定义 View 的童鞋都会发现,直接继承 View 的自定义控件需要重写 onMeasure() 方法,并设置 wrap_cont ...

随机推荐

  1. VideoView的视频的全屏播放

    import android.net.Uri;import android.os.Bundle;import android.app.Activity;import android.content.I ...

  2. JS-DOM操作应用

    父级.appendChild(子节点) 父级.insertBefore(子节点,在谁之前) <title>无标题文档</title> <script> window ...

  3. hdu-1978_How many ways dfs+记忆化搜索

    How many ways Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total ...

  4. PAT (Advanced Level) 1101. Quick Sort (25)

    树状数组+离散化 #include<cstdio> #include<cstring> #include<cmath> #include<map> #i ...

  5. USACO Section 1.3 Ski Course Design 解题报告

    题目 题目描述 有N座山,每座山都有一个高度,现在由于农夫想避税,所以想把这些山的高度进行一些改变,使得最高的山与最低的山之间的高度差不超过17.每座山最多只能改变一次高度,每次改变高度都会产生一定的 ...

  6. 转:总结Selenium WebDriver中一些鼠标和键盘事件的使用

    在使用 Selenium WebDriver 做自动化测试的时候,会经常模拟鼠标和键盘的一些行为.比如使用鼠标单击.双击.右击.拖拽等动作:或者键盘输入.快捷键使用.组合键使用等模拟键盘的操作.在 W ...

  7. codeforces 665B Shopping

    暴力 #include<cstdio> #include<cstring> #include<cmath> #include<vector> #incl ...

  8. Task Cancellation: Parallel Programming

    http://beyondrelational.com/modules/2/blogs/79/posts/11524/task-cancellation-parallel-programming-ii ...

  9. JS监听input框的回车事件、属性值改变事件

    一.介绍 在程序猿门的工作中,经常会遇见一些表单数据的提交,对于有表单的东西而言,input输入框是非常常见的,所以对于一些input的基本事件,我们需要去掌握 二.input的监听enter事件 比 ...

  10. NIPS 2016论文:英特尔中国研究院在神经网络压缩算法上的最新成果

    NIPS 2016论文:英特尔中国研究院在神经网络压缩算法上的最新成果 http://www.leiphone.com/news/201609/OzDFhW8CX4YWt369.html 英特尔中国研 ...