[转]UITableView中cell点击的绚丽动画效果

转:http://www.cnblogs.com/YouXianMing/p/4187996.html

这个链接中的代码也实现了这种效果

https://github.com/cbpowell/MarqueeLabel

最终效果如下:

原理如下:

1. 获取文本

2. 计算文本宽度

3. 将这个Label放入ScrollView中

4. 将ScrollView的contentSize的宽度设置与文本宽度一致

5. 做动画

*6. 边缘的渐隐效果请使用带透明像素的PNG图片

//

//RootViewController.m

//

//Copyright (c) 2014年 Y.X. All rights reserved.

//

#import"RootViewController.h"

#import"YXKit.h"

#import"FontPool.h"

@interfaceRootViewController ()

@end

@implementationRootViewController

- (void)viewDidLoad

{

[super viewDidLoad];

self.view.backgroundColor=[UIColor blackColor];//注册字体

REGISTER_FONT(bundleFont(@"新蒂小丸子体.ttf"),@"新蒂小丸子体");//获取文本

NSString *string=@"喜欢这首情思幽幽的曲子,仿佛多么遥远,在感叹着前世的情缘,又是那么柔软,在祈愿着来世的缠绵。《莲的心事》,你似琉璃一样的晶莹,柔柔地拨动我多情的心弦。我,莲的心事,有谁知?我,莲的矜持,又有谁懂?";

//初始化label

UILabel *label      = [UILabelnew];

label.text=string;

label.numberOfLines=0;

label.textColor=[UIColor cyanColor];

label.font= [UIFont fontWithName:CUSTOM_FONT(@"新蒂小丸子体",0)

size:20.f];

//计算尺寸

CGSize size        = [label boundingRectWithSize:CGSizeMake(0,0)];

label.frame=(CGRect){CGPointZero, size};

//初始化

ScrollViewUIScrollView *showView =\

[[UIScrollView alloc] initWithFrame:CGRectMake(0,90,320, size.height)];

showView.contentSize=size;

showView.showsHorizontalScrollIndicator=NO;

[showView addSubview:label];

[self.view addSubview:showView];

//形成边缘的遮罩

UIImageView *imageView =\

[[UIImageView alloc] initWithFrame:CGRectMake(0,90,320, size.height)];

imageView.image= [UIImage imageNamed:@"bg"];

[self.view addSubview:imageView];

//动画

[UIView animateKeyframesWithDuration:10delay:7options:UIViewKeyframeAnimationOptionAllowUserInteraction

animations:^{

//计算移动的距离

CGPoint point =showView.contentOffset;

point.x= size.width -320.f;

showView.contentOffset=point;

}

completion:^(BOOL finished) {

}];

}@end

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容