ios开发之--为父view上的子view添加阴影
项目中碰到一个问题,在tableview的headerview里面有很一个子view,设计师的要求是在下方添加一个阴影,效果如下:
以前的实现思路就是,代码如下:
添加阴影
调用视图的 layer
CALayer *layer = [imageView layer];
layer.shadowOffset = CGSizeMake(, ); //(0,0)时是四周都有阴影
layer.shadowRadius = 5.0;
layer.shadowColor = [UIColor blackColor].CGColor;
layer.shadowOpacity = 0.5;
设置单边阴影,代码如下:
向左偏移10 (-,)
向右偏移10 (,)
向上偏移10 (,-)
向下偏移10 (,)
但是效果不是特别理想,可以用贝塞尔曲线进行设置,但是没起到作用,还没找到原因,还有就是一个坑,就是给子view添加阴影,前面我正常写阴影居然没有出现,
先看下成功实现的代码:
self.headerView.showView.layer.shadowColor = KPublickColor.CGColor; self.headerView.layer.shadowOffset = CGSizeMake(, ); self.headerView.layer.shadowOpacity = 0.4; self.headerView.layer.shadowRadius = 5.0; self.headerView.layer.cornerRadius = 5.0; self.headerView.bgView.clipsToBounds = NO;
这样的话,阴影是可以成功设置的,
没有成功,分析原因:因为代码中设置了masksToBounds属性为YES了,将后面设置的阴影效果给裁剪掉了,所以我们看不到阴影效果,如果我们将masksToBounds属性为NO了,这样就会失去圆角效果(尽管会出现阴影效果),所以需要向一个两全其美的办法来解决这个问题。
给View添加一个父视图,在父视图上添加阴影效果就好,这样就不会对imageView的圆角造成影响了。
说明:
clipsToBounds 是指视图上的子视图,如果超出父视图的部分就截取掉, masksToBounds 却是指视图的图层上的子图层,如果超出父图层的部分就截取掉
但是,还是不美观,可以在目标view的下方,初始化一个view,然是设置阴影半径,Y坐标向上偏移view的高度+阴影的半径,然后就可以实现了!
如图:
仅做记录!
ios开发之--为父view上的子view添加阴影的更多相关文章
- iOS开发网络篇—文件的上传
iOS开发网络篇—文件的上传 说明:文件上传使用的时POST请求,通常把要上传的数据保存在请求体中.本文介绍如何不借助第三方框架实现iOS开发中得文件上传. 由于过程较为复杂,因此本文只贴出部分关键代 ...
- iOS开发-自动布局篇:史上最牛的自动布局教学!
转载自:http://www.jianshu.com/p/f6cf9ef451d9 本文我们将提到: aotulayout(手码) VFL aotulayout(Xib) Masonry(第三方框架) ...
- iOS 开发http post 文件的上传
iOS开发网络篇—文件的上传 说明:文件上传使用的时POST请求,通常把要上传的数据保存在请求体中.本文介绍如何不借助第三方框架实现iOS开发中得文件上传. 由于过程较为复杂,因此本文只贴出部分关键代 ...
- Delphi for iOS开发指南(1):在Mac上配置你的开发环境
http://cache.baiducontent.com/c?m=9d78d513d99516f11ab7cf690d678c3b584380122ba7a0020fd18438e4732b4050 ...
- iOS开发如何在一个透明视图上添加不透明的子控件
相信很多同学都会遇到过这个问题, 当我们弹出一个半透明的遮盖层时, 又想在遮盖层上加一些子视图, 这个时候如果你的遮盖层设置了alpha属性, 你会惊讶的发现, 加载遮盖层上的所有子控件都是透明了, ...
- IOS开发UI篇--使用CAShapeLayer实现复杂的View的遮罩效果
一.案例演示 最近在整理一个聊天的项目的时候,发送图片的时候,会有一个三角的指向效果,指向这张图片的发送者.服务端返回给我们的图片只是一张矩形的图片,我们如何把一张矩形的图片或者View,加上一层自定 ...
- iOS开发-- 创建podspec文件,为自己的项目添加pod支持
开篇扯淡 作为一个iOS开发者,一定用过CocoaPods吧,没用过?点这儿去面壁吧 Cocoapods作为iOS开发的包管理器,给我们的开发带来了极大的便利,而且越来越多的第三方类库支持Pod,可以 ...
- Xcode5 + phoneGap2.9搭建ios开发环境-配置-测试-归档上传/phoneG...
前言: 小弟是做JAVA/Android的第一次搞这个ios,公司有mobile项目是使用phoneGap开发的,需要开发ios版本.什么都不会只能一点一点琢磨了……大神越过…… 原文链接:http: ...
- iOS开发关于AppStore程序的上传流程
主要内容: 1.创建唯一标示符App ID(前提是你的程序在真机上测试没有任何问题) 2.申请发布证书 3.申请发布描述文件 4.iTunes Connect创建App并填写信息 5.选择证书编译打包 ...
随机推荐
- 【微信小程序】安装DingoApi开发小程序api
1.安装 composer require dingo/api 2.发布配置: php artisan vendor:publish 选择DingoApi发布. 3.向.env文件添加配置 (1)项目 ...
- Service__cmd安装MySQL并连接SQLyog
整理记录关于使用cmd安装mysql的过程 1.配置环境变量 1) 计算机->属性->高级系统设置->环境变量 2)先添加变量 变量名:MYSQL_HOME 变量值:D:\mys ...
- Hive性能调优(一)----文件存储格式及压缩方式选择
合理使用文件存储格式 建表时,尽量使用 orc.parquet 这些列式存储格式,因为列式存储的表,每一列的数据在物理上是存储在一起的,Hive查询时会只遍历需要列数据,大大减少处理的数据量. 采用合 ...
- vs code切换中英文界面
1. 在vs code的应用扩展中搜索这个插件: Chinese (Simplified) Language Pack for Visual Studio Code 这个插件,安装完毕重新加载即可生效 ...
- FPDF_CloseDocument(doc);
FPDF_CloseDocument(doc); 创建不加载就会段错误 必须创建 doc = FPDF_CreateNewDocument();
- Mybatis的Java API(八)
使用mybatis的主要Java接口就是SqlSession.可以通过这个接口来执行命令,获取映射器和事务管理. SqlSession是由SqlSessionFactory实例创建,SqlSessio ...
- Ubuntu16.04下安装Cmake-3.8.2并为其配置环境变量
下载安装包 首先我们到官网下载最新的cmake二进制安装包https://cmake.org/files/ 这里,我下载的是比较新的cmake-3.8.2-Linux-x86_64.tar.gz解压安 ...
- git--github使用
什么是github GitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名GitHub. GitHub于2008年4月10日正式上线,除了Git代码仓 ...
- Vue 变异方法Push的留言板实例
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- mysql事务隔离级别与设置
mysql数据库,当且仅当引擎是InnoDB,才支持事务: 1.隔离级别 事务的隔离级别分为:未提交读(read uncommitted).已提交读(read committed).可重复读(repe ...