- 浏览: 1031231 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (675)
- ios (214)
- android-course (5)
- unity3d (7)
- cocos2d (36)
- html5 (3)
- game (5)
- android (42)
- java (57)
- php (12)
- 创业 (10)
- SEO (3)
- 架构 (2)
- 数据库 (3)
- 产品设计 (9)
- 操作系统 (10)
- Web前端 (11)
- 其他 (50)
- GAE (1)
- mac os (8)
- Open Source (2)
- 序列号 (10)
- C (2)
- database (2)
- 算法 (6)
- 设计模式 (1)
- photoshop (1)
- 3dmax (1)
- maya (1)
- opengl (3)
- 游戏设计 (1)
- 趋势 (1)
- cocos2d-x (4)
- shell (3)
- c++ (30)
- lua (5)
- flash (1)
- spring (3)
- mysql (4)
- Git (6)
- xmpp (1)
- cocos2dx (14)
- mac (2)
- 编程规范 (2)
- windows (1)
- linux (5)
- coocs2dx (1)
- ubuntu (2)
- aws (1)
- OPENGLES (1)
- 原画 (1)
最新评论
-
jlees:
Best mobile app testing tool pc ...
iOS + XCode 4 + GHUnit = Mobile TDD+Continuous testing -
ipanda:
楼主,能否给一个Micro CloudFoundry的虚机或者 ...
Cloud Foundry使用及开发向导 -
love_zongming:
谢谢分享。。
visio2007序列号 -
雨花台舞水:
你这才是枪文把
套在 360 黑匣子外面的黑盒子:你被技术型枪稿吓到了么? -
hugh.wang:
改天试试
Mac版魔兽争霸3 1.24e下载
昨天打群雄一下打了两个“破敌”,比较空虚,然后想起周末觉得自己应用中的图案都是纯用Path画的平面效果,比较土,就研究了一下如何实现点时尚的效果。 最终完成效果如下: 而原图效果只是这样: 通过遮罩完成以上效果,代码非常简单,不过需要准备遮罩层要用的alpha通道图片,对于非常非常不美工的我来说,用d版的fireworks搞掂: 但是你并不能直接把这个遮罩蒙在你的图片上,这样的话,图片会变暗,而且效果是跟你期望的相反的,正确的做法是在图片上蒙一个某种色的层,然后给这个层应用这个遮罩,这样最终效果就是我们期望的。 不过这里我们还需要一个简单的遮罩,应用在整个图上,把它修正成圆角(因为原图是四方的): 这个遮罩很简单,圆角alpha通道全透明,把原图的四角给全透掉(遮罩原理就是在原图像素的alpha改成遮罩的alpha)。 好了,整个代码如下:
- (void)viewDidLoad {
[super viewDidLoad];
UIGraphicsBeginImageContext(icon.bounds.size);
CGContextRef ctx = UIGraphicsGetCurrentContext();
const CGFloat components[4] = {0.0,0.4,0.0,1.0};
CGContextSetFillColor(ctx, components);
CGContextFillRect(ctx, CGRectMake(0, 0, icon.bounds.size.width, icon.bounds.size.height));
UIImage *background = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImage *image = [UIImage imageNamed:@"icon.png"];
UIImage *mask = [UIImage imageNamed:@"IconBase.png"];
UIImage *roundCorner = [UIImage imageNamed:@"round-corner.png"];
icon.image = image;
CALayer* subLayer = [[CALayer layer] retain];
subLayer.frame = icon.bounds;
subLayer.contents = (id)[background CGImage];
CALayer* maskLayer = [[CALayer layer] retain];
maskLayer.frame = icon.bounds;
maskLayer.contents = (id)[mask CGImage];
[subLayer setMask:maskLayer];
[[icon layer] addSublayer:subLayer];
CALayer* roundCornerLayer = [[CALayer layer] retain];
roundCornerLayer.frame = icon.bounds;
roundCornerLayer.contents = (id)[roundCorner CGImage];
[[icon layer] setMask:roundCornerLayer];
[maskLayer release];
[subLayer release];
[roundCornerLayer release];
}
- Untitled.zip (729.8 KB)
- 下载次数: 11
发表评论
-
Mac上安装Protocol Buffers
2016-09-18 11:29 8191.下载文件 (http://code.google.com ... -
webview点击获取图片
2016-04-01 17:12 827UILongPressGestureRecognizer * ... -
hexo 自动部署脚步
2016-03-29 21:17 932echo "===============star ... -
自定义navigationItem.leftBarButtonItem后,系统默认的手势滑动失效解决方案
2016-03-01 18:01 1280自定义navigationItem.le ... -
UITextView autolayout 高度自适应
2016-02-15 23:26 1413UITextView *t = [[UITextView ... -
腾讯敏捷框架TAPD》研究
2015-11-19 20:47 1420这篇文档是研究心得 ... -
ios image 压缩
2015-11-06 12:09 837- (UIImage *)_scaleToSize:(UII ... -
iphone分辨率图解
2015-11-04 17:33 565iphone分辨率图解 -
IOS中获取各种文件的目录路径的方法
2015-09-24 12:10 647iphone沙箱模型的有四个文件夹,分别是什么,永久数据存储 ... -
Customizing Navigation Bar and Status Bar in iOS 7
2015-08-17 20:23 1606Like many of you, I have been ... -
GCD 深入理解:第一部分
2015-07-24 14:49 767本文翻译自 http://www.raywenderlich ... -
Mac上的抓包工具Charles
2015-05-06 01:09 5316Mac上的抓包工具Charles 分类: IO ... -
如何移除发布版本中的NSLog输出
2015-05-04 20:27 749Phone开发中会经常使用NSLog将一些运行信息输出到终端 ... -
xcode4的环境变量,Build Settings参数,workspace及联编设置
2015-03-27 11:23 925一、xcode4中的环境变量 $(BUILT_PROD ... -
数字签名是什么?
2014-11-25 16:58 616http://www.ruanyifeng.com/blog/ ... -
让你的Xcode更加高效
2014-10-29 00:16 518http://www.tairan.com/archives/ ... -
我所经历的“余额宝”的那些故事
2014-06-08 01:05 758“余额宝”经过不到 ... -
代码手写UI,xib和StoryBoard间的博弈,以及Interface Builder的一些小技巧
2014-05-31 01:25 794最近接触了几个刚入门的iOS学习者,他们之中存在一个普遍 ... -
WWDC 2013 Session笔记 - iOS7中的多任务
2014-05-31 01:24 661这是我的WWDC2013系列笔记中的一篇,完整的笔记列表 ... -
APP被苹果App Store拒绝的79个原因(未完待续)
2014-05-09 10:49 1148作为iOS开发者,估计有很多都遇到过APP提交到App Sto ...
相关推荐
通过使用 CALayer 的遮罩(Mask)功能,我们可以轻松地实现 iphone 图标的水晶立体效果。下面,我们将详细介绍如何使用遮罩来实现这种效果。 首先,让我们了解一下什么是遮罩(Mask)。在图形编程中,遮罩是一个...
本示例中的"ios-自定义CALayer.zip"是一个教学项目,旨在指导开发者如何通过自定义CALayer来实现一个简单的星空模拟效果。尽管效果可能并不复杂,但这个例子对于初学者理解如何操作和扩展CALayer的潜力非常有帮助。 ...
同时,通过设置`mask`属性,可以创建基于形状或图像的遮罩,实现部分透明或形状裁剪的效果。 十、响应式布局 虽然CALayer本身不支持Auto Layout,但可以通过`layoutIfNeeded`方法手动触发布局更新,结合Masonry或纯...
"遮罩镂空效果实现"是一个典型的案例,它涉及到对CALayer子类CAShapeLayer的深入理解和应用。在这个主题中,我们将探讨如何利用CAShapeLayer的UserEvenOddFillRules属性来创建支持任意镂空形状的效果。 首先,...
在iOS中,我们可以使用`CAShapeLayer`或者设置`layer.mask`属性来实现遮罩效果。遮罩层的形状决定可见区域,其透明度(alpha)值决定遮罩的透明度。 3. **视图动画(View Animation)** 标签中提到的“视图动画”...
用代码实现三维立体图形
本文将深入探讨如何通过源码分析来实现iOS中的`mask`层和`CAShapeLayer`层中间挖去一部分的效果。 首先,`CAShapeLayer`是`CALayer`的一个子类,它允许我们创建基于矢量图形的层。矢量图形的优势在于它们可以无损...
本文将深入探讨如何使用它们来实现镂空和遮罩效果,这两种效果在用户界面设计中非常常见,可以增加应用的美观性和交互性。 首先,UIBezierPath是UIKit框架中的一个类,它允许我们创建自定义的矢量图形路径。通过一...
**CALayer基本使用** ...总之,理解和熟练运用CALayer是iOS开发中的重要技能,它能帮助开发者实现许多视觉效果和高性能的动画。通过对Layer的深入学习,开发者可以更好地掌控应用程序的界面表现和性能。
在描述中提到的“一个mask动画”,我们可以理解为利用CALayer的mask属性来创建动态的遮罩效果。CALayer是Core Animation的基础类,它可以被用来构建和管理视图的渲染层次。其中,mask属性是一个CALayer实例,它决定...
在iOS中,我们可以使用CALayer的mask属性来实现这一功能。遮罩层是一个黑白图像,白色部分表示可见,黑色部分表示不可见,灰度部分则根据灰度值决定透明度。 要实现GIF图片遮罩,我们需要以下步骤: 1. **加载GIF...
`CALayer`的`mask`属性可以接受一个`CALayer`作为蒙版,实现基于图像的裁剪效果。`CAGradientLayer`和`CAShapeLayer`也可以用作蒙版。 ### 11. 层的混合模式 `CALayer`支持多种混合模式,通过调整`...
项目中可能有一个UIImageView用于显示原始图片,一个UIButton用于触发颜色更改或遮罩应用操作,以及一个自定义的UIView或CALayer实现遮罩效果。用户点击按钮后,应用会根据选择的操作改变图片的颜色或应用遮罩。 ...
例如,`maskLayer`属性可以为层添加遮罩,实现不规则形状的视图。`shadowPath`和`shadowColor`可以设置阴影效果,而`borderRadius`则能创建圆角效果。这些特性使我们能够实现更加精致的界面设计。 `CALayer`还可以...
这两种动画方式虽然都可以实现丰富的视觉效果,但它们有着不同的特性和使用场景。 首先,让我们了解`UIView`动画。UIView动画是iOS中最基础的动画类型,主要用于处理UIView及其子类的变化。它可以实现诸如坐标改变...
在iOS开发中,为了创建各种动态视觉效果,如火焰、雪花、粒子系统等,我们可以使用Core Animation框架中的`CAEmitterLayer`。这个类提供了一种强大的机制,用于模拟粒子发射器,可以用来实现复杂的动画效果,例如...
通常,我们使用AutoLayout来实现这一目标。然而,对于`CALayer`对象,它们并不直接支持AutoLayout。但通过一些技巧,我们可以让`CALayer`也能享受到类似AutoLayout的功能。本篇文章将探讨两种优雅地实现`CALayer` ...
使用`CAAnimation`类,可以平滑地改变CALayer的属性,比如改变倒影的透明度或位置,以实现动态效果。 7. **性能考虑**:虽然CALayer和Core Graphics提供了强大的功能,但创建和更新倒影会消耗性能,特别是在处理...
原理:使用CALayer 实现时钟 文章:https://kunnan.blog.csdn.net/article/details/74135552