昨天打群雄一下打了两个“破敌”,比较空虚,然后想起周末觉得自己应用中的图案都是纯用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];}
?
详细解决方案
用CALayer.Mask(遮罩)兑现iphone图标的水晶立体效果
热度:248 发布时间:2016-04-25 06:25:02.0
相关解决方案
- iphone 模拟器,该如何处理
- c#c++,android,ios(iphone),php,java视屏课程 散分
- 有哪位高手用过JPlayer ,进来一下,IPHONE 等设备播放有关问题
- 单个人去做手机开发选什么平台好?android,iphone?解决办法
- iphone app拖进iTunes生成ipa包出现embedded.mobileprovision异常
- 对于手机android iphone ipad 在线播放视频,服务器需要哪些要求呢?该怎么解决
- >>> PayPal mobile for Android / iPhone 开发包 开放啦!
- OPhone Vs iphone, 作为开发者的我们将何去和从?
- HTML,CSS,Javascript in iPhone (转从 koubei F2E 善朋)
- iphone + html5是个美模式
- 共享两个日前手机项目的HTML5的widget,星星评级以及标签选项卡,样式美观,iphone/android可用
- ipad 和 iphone 上的有关问题
- iPhone 筹建PHP版Push服务器 实例操作
- iphone/ipod网页开发课程及规则
- iphone UIWebView 的运用
- iPhone运用:JSF2 Tag Reference,offline view by iPhone
- iphone 获取UIWebView内Html步骤
- iphone Web App 领航设计探讨
- iPhone Safari Web开发心得
- iPhone Android Web开发(要略)
- JS 判断浏览器客户端门类(ipad,iphone,android)
- iphone ipad android手机访问wcf service出现中文乱码(!)
- 探秘空值位图掩码(NULL bit地图 mask)
- iPhone SE销量惨淡?见见这些数据就知道了
- 一九七零年// iPhone “变砖”后可继续正常使用的解决方案
- iPhone 6S 有苹果不愿意讨论的有关问题
- iphone 浏览器自动解析数字为号码解决方法
- 怎么禁止 iPhone Safari video标签视频自动全屏
- CALayer 学识:创建带阴影效果的圆角图片图层和创建自定义绘画内容图层
- CALayer 三 详解 -转自李明杰