[iOS开发技巧之]iPhone走马灯控件实现
2012-03-30 16:46
645 查看
本文来源:http://www.cnblogs.com/KiloNet/archive/2010/09/17/1829155.html
走马灯效果实现原理,就是利用iPhone自带的动画来控制UILable的y轴位置:
代码如下:
其它扩展:
在Navigation里实现跑马灯效果,因为Navigation的宽度限制了,所以须使用下面代码调用:
走马灯效果实现原理,就是利用iPhone自带的动画来控制UILable的y轴位置:
代码如下:
//LampText.h @interface LampText : UILabel { float motionWidth; } @property (nonatomic) float motionWidth; @end //LampText.m #import "LampText.h" @implementation LampText @synthesize motionWidth; - (id)initWithFrame:(CGRect)frame { if ((self = [super initWithFrame:frame])) { motionWidth = 200; } return self; } - (void)drawRect:(CGRect)rect { [super drawRect:rect]; float w = self.frame.size.width; if (motionWidth>=w) { return; } CGRect frame = self.frame; frame.origin.x = 320; self.frame = frame; [UIView beginAnimations:@"testAnimation" context:NULL]; [UIView setAnimationDuration:8.0f * (w<320?320:w) / 320.0 ]; [UIView setAnimationCurve:UIViewAnimationCurveLinear]; [UIView setAnimationDelegate:self]; [UIView setAnimationRepeatAutoreverses:NO]; [UIView setAnimationRepeatCount: LONG_MAX]; frame = self.frame; frame.origin.x = -w ; self.frame = frame; [UIView commitAnimations]; } - (void)dealloc { [super dealloc]; } @end //调用: NSString *title = @"Hi,kilonet, weclome to my blog!"; CGFloat w = [title sizeWithFont:[UIFont fontWithName:@"Arial" size:18]].width; LampText *titleLabel = [[LampText alloc]initWithFrame:CGRectMake(0, 0, w, 40)]; [titleLabel setBounds:CGRectMake(0, 0, w, 40)]; titleLabel.lineBreakMode = UILineBreakModeClip; titleLabel.text = title; titleLabel.textAlignment = UITextAlignmentCenter; titleLabel.font = [UIFont fontWithName:@"Arial" size:18]; titleLabel.textColor = [UIColor whiteColor]; titleLabel.backgroundColor = [UIColor clearColor]; //[titleLabel sizeToFit]; [self.view addSubview: titleLabel]; [titleLabel release];
其它扩展:
在Navigation里实现跑马灯效果,因为Navigation的宽度限制了,所以须使用下面代码调用:
+(void) showNavTitle:(UIViewController *)controller title:(NSString *)title { [Utilitys showNavTitle:controller title:title width:320.0]; } +(void) showNavTitle:(UIViewController *)controller title:(NSString *)title width:(CGFloat) width { CGFloat w = [title sizeWithFont:[UIFont fontWithName:@"Arial" size:18]].width; CGFloat x = 0; if (w <= width) { x = (width - w) / 2; } LampText *titleLabel = [[LampText alloc]initWithFrame:CGRectMake(x, 0, w, 40)]; titleLabel.motionWidth = width; titleLabel.lineBreakMode = UILineBreakModeClip; titleLabel.text = title; titleLabel.textAlignment = UITextAlignmentCenter; titleLabel.font = [UIFont fontWithName:@"Arial" size:18]; titleLabel.textColor = [UIColor whiteColor]; titleLabel.backgroundColor = [UIColor clearColor]; UIScrollView *scroll = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, width, 40)]; [scroll addSubview:titleLabel]; controller.navigationItem.titleView = scroll; [titleLabel release]; [scroll release]; }
相关文章推荐
- 【iOS解决方案】iPhone走马灯控件实现
- Objective-C ,ios,iphone开发基础:picker控件详解与使用,(实现省市的二级联动)
- Objective-C ,ios,iphone开发基础:picker控件详解与使用,(实现省市的二级联动)
- Objective-C ,ios,iphone开发基础:picker控件详解与使用,(实现省市的二级联动)
- ios学习--iphone开发私房菜_5_] iphone中如何实现下拉菜单 .
- iPhone走马灯控件实现
- iOS开发笔记14--iPhone消息推送机制实现与探讨
- iPhone开发笔记(9)ASIHttpRequest和json-framework实现json解析(iOS客户端)
- iOS开发_iphone开发_iphone界面怎么实现下拉列表
- IOS系列——iPhone开发中的技巧整理
- iOS开发UI篇—UIScrollView控件实现图片缩放功能
- iOS开发UI篇—实现UItableview控件数据刷新
- ios iphone开发中使用UIActivityIndicatorView 控件来做等待提示。
- [IOS_UI控件]IPHONE应用开发 - 打开和关闭键盘
- iOS开发-UI控件:UITableViewCell划动删除的实现
- iOS开发UI基础—17UIScrollView控件实现图片缩放功能
- iOS开发UI篇—UIScrollView控件实现图片缩放功能
- iOS开发_iphone 实现剪贴板操作_iphone 复制粘贴功能(转)
- [IOS_UI控件]iPhone应用开发之一:窗口,视图,视图控制器和UIKit基础
- iOS开发:Iphone的常用控件大全