注册 登录
主题 : 代码片段:不使用一张图片,实现漂亮的霓虹灯特效。
级别: 新手上路
UID: 85153
精华: 0
发帖: 28
可可豆: 173 CB
威望: 73 点
在线时间: 108(时)
注册时间: 2011-08-04
最后登录: 2016-05-13
0 楼:  发表于: 2013-12-30 20:47    发自: Web Page

代码片段:不使用一张图片,实现漂亮的霓虹灯特效。   

管理提醒: 本帖被 angellixf 执行加亮操作(2013-12-30)
才看到这个活动,就现写了一个。





-(void)startRoundAnimation:(UIColor *)color lineWidth:(float)lineWidth duration:(float)duration
{
    if (self.customLayer.sublayers.count>DURATION/TIMESEP) [[self.customLayer.sublayers objectAtIndex:0]removeFromSuperlayer];
    CGRect rect = CGRectMake(self.bounds.origin.x+2, self.bounds.origin.y+2, self.bounds.size.width-4, self.bounds.size.height-4);
    UIBezierPath *path=[UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:5];
    roundLayer=[CAShapeLayer layer];
    roundLayer.path=path.CGPath;
    roundLayer.fillColor=[UIColor colorWithWhite:1 alpha:0.0].CGColor;
    roundLayer.strokeColor=color.CGColor;
    roundLayer.lineWidth=lineWidth;
    roundLayer.frame=self.bounds;
    [self.customLayer addSublayer:roundLayer];
    [self drawLineAnimation:roundLayer duration:duration];
}
-(void)drawLineAnimation:(CALayer*)layer duration:(float)duration
{
    CABasicAnimation *bas=[CABasicAnimation animationWithKeyPath:@"strokeEnd"];
    bas.duration=duration;
    bas.delegate=self;
    bas.repeatCount = 1;
    bas.fromValue=[NSNumber numberWithInteger:0];
    bas.toValue=[NSNumber numberWithInteger:1];
    [layer addAnimation:bas forKey:@"key"];
}
-(void)play
{
    self.timer = [NSTimer scheduledTimerWithTimeInterval:TIMESEP target: self selector: @selector(runLoop:) userInfo: nil repeats: YES];
}
-(void)runLoop:(id)sender
{
    if (state == 0) {
        [self startRoundAnimation: [UIColor whiteColor] lineWidth:3.0 duration:DURATION];
        state=1;
    }else{
        [self startRoundAnimation:self.backgroundColor lineWidth:4.0 duration:DURATION];
        state=0;
    }
}
@end



勉强40行。。。
关键词: 代码
级别: 新手上路
UID: 85153
精华: 0
发帖: 28
可可豆: 173 CB
威望: 73 点
在线时间: 108(时)
注册时间: 2011-08-04
最后登录: 2016-05-13
1 楼:  发表于: 2013-12-30 20:52    发自: Web Page
额,忘记上传工程文件了。
潜水多年,很少发帖,没找到在哪里编辑原帖,只好回复主题上传了。
描述:demo
附件: Demo_touchView.zip (73 K) 下载次数:96
级别: 精灵王

状态: 连续签到 - [341天]
UID: 4020
精华: 0
发帖: 437
可可豆: 24891 CB
威望: 25992 点
在线时间: 3388(时)
注册时间: 2009-04-02
最后登录: 2018-08-21
2 楼:  发表于: 2013-12-31 08:19    发自: Web Page
多谢分享

支持支持!
一直在努力,一直都觉得努力得还不够~~
www.etware.com
级别: 版主

状态: 连续签到 - [392天]
UID: 152587
精华: 0
发帖: 2037
可可豆: 5057 CB
威望: 4403 点
在线时间: 1408(时)
注册时间: 2012-07-05
最后登录: 2018-03-30
3 楼:  发表于: 2013-12-31 08:53    发自: Web Page
多谢分享

支持支持!
努力成为一枚合格的Coder.
级别: 新手上路
状态: 连续签到 - [1天]
UID: 175694
精华: 0
发帖: 7
可可豆: 12 CB
威望: 10 点
在线时间: 218(时)
注册时间: 2012-11-08
最后登录: 2017-04-20
4 楼:  发表于: 2014-01-01 16:29    发自: Web Page
看到图片就知道贝塞尔曲线=-=!这个实现的发散性就太多了
级别: 新手上路
状态: 连续签到 - [1天]
UID: 153298
精华: 0
发帖: 4
可可豆: 7 CB
威望: 7 点
在线时间: 1(时)
注册时间: 2012-07-09
最后登录: 2015-03-20
5 楼:  发表于: 2014-01-02 10:35    发自: Web Page
赞一个
级别: 光明使者

状态: 连续签到 - [255天]
UID: 2069
精华: 5
发帖: 1091
可可豆: 124131 CB
威望: 126125 点
在线时间: 2587(时)
注册时间: 2009-02-07
最后登录: 2019-03-20
6 楼:  发表于: 2014-01-02 10:40    发自: Web Page
赞一个。。多谢分享。
汉字字典 -2018最新专业版
级别: 新手上路
状态: 连续签到 - [1天]
UID: 232901
精华: 0
发帖: 55
可可豆: 384 CB
威望: 299 点
在线时间: 287(时)
注册时间: 2013-07-17
最后登录: 2018-12-07
7 楼:  发表于: 2014-01-13 10:15    发自: Web Page
能不能给个完整的demo看一下.小白看不会
级别: 精灵王

UID: 47876
精华: 0
发帖: 1517
可可豆: 5147 CB
威望: 5418 点
在线时间: 1079(时)
注册时间: 2011-01-21
最后登录: 2019-02-02
8 楼:  发表于: 2014-01-13 11:03    发自: Web Page

CocoaChina社区转载内容已尽可能注明出处,如未能核实来源或转发内容图片有权利瑕疵的,请及时联系社区进行修改或删除【联系方式QQ : 3442093904 邮箱:support@cocoachina.com】文章内容为作者独立观点,不代表CocoaChina社区立场。版权归原作者所有,如申请授权请联系作者,因文章侵权CocoaChina社区不承担任何法律及连带责任。

描述
快速回复

关注本帖(如果有新回复会站内信通知您)

发帖、回帖都会得到可观的积分奖励。查看论坛积分规则

按"Ctrl+Enter"直接提交
    顶部