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;
self.viewShadow.layer.borderWidth = 1;
self.viewShadow.layer.masksToBounds = YES;
//阴影视图背景
self.viewShadowBg = [[UIView alloc]initWithFrame:CGRectMake(100, 100, 100, 100)];
self.viewShadowBg.layer.shadowOpacity = 1;
self.viewShadowBg.layer.shadowOffset = CGSizeZero;
self.viewShadowBg.layer.shadowColor = [UIColor greenColor].CGColor;
self.viewShadowBg.layer.shadowRadius = 10;
self.viewShadowBg.layer.borderWidth = 1;
self.viewShadowBg.layer.borderColor = [UIColor grayColor].CGColor;
self.viewShadowBg.layer.cornerRadius = 5;
情况二:自定义视图阴影效果
自定义视图阴影,我们用到的是这个属性:view.layer.shadowPath,我们通过这个属性来自定义视图阴影。
贝塞尔曲线
这里我们还用到了贝塞尔曲线,通过数学方式来描述图形效果,常见于计算机中图像的描述。objective-c中通过UIBezierPath来描述贝塞尔曲线。贝塞尔曲线知识点补充:
Bezier曲线简介
贝塞尔曲线-维基百科
实现正常矩形效果:
UIView *view = [[UIView alloc] init];
view.frame = CGRectMake(100, 100, 100, 100);
view.center = self.view.center;
view.backgroundColor = [UIColor clearColor];
view.layer.shadowColor = [UIColor blackColor].CGColor;
view.layer.shadowOpacity = 0.7f;
view.layer.shadowOffset = CGSizeMake(30.0f, 10.0f);
view.layer.shadowRadius = 2.0f;
view.layer.masksToBounds = NO;
//正常矩形
UIBezierPath *path = [UIBezierPath bezierPathWithRect:view.bounds];
view.layer.shadowPath = path.CGPath;
[self.view addSubview:view];
实现自定义画梯形:
UIView *view = [[UIView alloc] init];
view.frame = CGRectMake(100, 100, 100, 100);
view.center = self.view.center;
view.backgroundColor = [UIColor clearColor];
view.layer.shadowColor = [UIColor blackColor].CGColor;
view.layer.shadowOpacity = 0.7f;
view.layer.shadowOffset = CGSizeMake(30.0f, 10.0f);
view.layer.shadowRadius = 2.0f;
view.layer.masksToBounds = NO;
//自定义画梯形
CGSize size = view.bounds.size;
UIBezierPath *path = [UIBezierPath bezierPath];
[path moveToPoint:CGPointMake(size.width * 0.33f, size.height * 0.66f)];
[path addLineToPoint:CGPointMake(size.width * 0.66f, size.height * 0.66f)];
[path addLineToPoint:CGPointMake(size.width * 1.15f, size.height * 1.15f)];
[path addLineToPoint:CGPointMake(size.width * -0.15f, size.height * 1.15f)];
view.layer.shadowPath = path.CGPath;
[self.view addSubview:view];
实现自定义大小椭圆形:
UIView *view = [[UIView alloc] init];
view.frame = CGRectMake(100, 100, 100, 100);
view.center = self.view.center;
view.backgroundColor = [UIColor clearColor];
view.layer.shadowColor = [UIColor blackColor].CGColor;
view.layer.shadowOpacity = 0.7f;
view.layer.shadowOffset = CGSizeMake(30.0f, 10.0f);
view.layer.shadowRadius = 2.0f;
view.layer.masksToBounds = NO;
//自定义大小椭圆形
CGRect ovalRect = CGRectMake(0, 0, 100, 20);
UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:ovalRect];
view.layer.shadowPath = path.CGPath;
[self.view addSubview:view];
iOS--为视图添加阴影的更多相关文章
- iOS 为视图添加抖动效果
抖动效果在开发中比较少用到,不过有时使用了确有个很好的装逼效果,用的时候就例如一些用户错误操作之类的 效果如下,不过gif看到的效果没实际的好看 上代码 - (void)shakeAnimationF ...
- ios 给UIImageView添加阴影
_borderView.layer.shadowColor = [UIColor grayColor].CGColor; _borderView.layer.shadowOffset = CGSize ...
- Xamarin iOS教程之添加和定制视图
Xamarin iOS教程之添加和定制视图 Xamarin iOS用户界面——视图 在iPhone或者iPad中,用户看到的摸到的都是视图.视图是用户界面的重要组成元素.例如,想要让用户实现文本输入时 ...
- ios开发之--为父view上的子view添加阴影
项目中碰到一个问题,在tableview的headerview里面有很一个子view,设计师的要求是在下方添加一个阴影,效果如下: 以前的实现思路就是,代码如下: 添加阴影 调用视图的 layer C ...
- iOS TabBar添加阴影
效果图如下所示: 直接上代码 //移除顶部线条 self.tabBar.backgroundImage = [UIImage new]; self.tabBar.shadowImage = [UIIm ...
- UIVisualEffectView为视图添加特殊效果
在iOS 8后,苹果开放了不少创建特效的接口,其中就包括创建毛玻璃(blur)的接口. 通常要想创建一个特殊效果(如blur效果),可以创建一个UIVisualEffectView视图对象,这个对象提 ...
- iOS 让视图UIView单独显示某一侧的边框线
iOS 让视图UIView 单独显示某一侧的边框线 有时候需要让view显示某一侧的边框线,这时设置layer的border是达不到效果的.在网上查阅资料发现有一个投机取巧的办法,原理是给view ...
- [Xcode 实际操作]二、视图与手势-(6)给图像视图添加阴影效果
目录:[Swift]Xcode实际操作 本文将演示给图像视图添加阴影效果 import UIKit class ViewController: UIViewController { override ...
- [Swift通天遁地]六、智能布局-(1)给视图添加尺寸和中心点的约束
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...
随机推荐
- 2016022613 - redis连接命令集合
redis连接命令 1.ping 用途:检查服务器是否正在运行 返回数据pong,表示服务器在运行. 2.quit 用途:关掉当前服务器连接 3.auth password 用途:服务器验证密码 没有 ...
- IE8,IE9,IE10绿色版,以及ColorPix
对于开发者而言IETest是一坨屎. 但是我们终于迎来的蛋糕和火腿,今天无意间发现了竟然有绿色版的浏览器版本,IE9,IE10已经下到本地,IE8网传是有的,但是没有找到合适的版本.但是足够了,本机使 ...
- PAT (Basic Level) 1013. 数素数 (20)
令Pi表示第i个素数.现任给两个正整数M <= N <= 104,请输出PM到PN的所有素数. 输入格式: 输入在一行中给出M和N,其间以空格分隔. 输出格式: 输出从PM到PN的所有素数 ...
- nutch 大量网站
下载地址:http://rdf.dmoz.org/rdf/content.rdf.u8.gzDMOZ网站是一个著名的开放式分类目录(Open DirectoryProject),之所以称为开放式分类目 ...
- 【BZOJ1030】[JSOI2007]文本生成器
[题意] 给定一些单词,我们定义一篇可读文章至少包含一个这样的单词,求长度为M的可读文章总数. [分析] 用前几题的方法可以求长度为M的不可读的文章总数Sum,所以我们可以用26^M-Sum来求出可读 ...
- mongodb 查看数据库和表大小
1.查看数据库 > db.stats(); { "db" : "test", //当前数据库 "collections" : 3, / ...
- 执行计划之CONCATENATION
CREATE TABLE T_CONCAT (ID NUMBER, NAME VARCHAR2(30), TYPE VARCHAR2(30)); INSERT INTO T_CONCAT SELECT ...
- 【HDOJ】1501 Zipper
DFS.注意剪枝,0ms. #include <stdio.h> #include <string.h> #define False 0 #define True 1 #def ...
- 支付宝APP支付(Java后台生成签名具体步骤)
/** *支付宝支付 * @param orderId 订单编号 * @param actualPay 实际支付金额 * @return */ private String getOrderInfoB ...
- HDU-1035 Robot Motion
http://acm.hdu.edu.cn/showproblem.php?pid=1035 Robot Motion Time Limit: 2000/1000 MS (Java/Others) ...