iPhone走马灯控件实现
生活随笔
收集整理的這篇文章主要介紹了
iPhone走马灯控件实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?? ?走馬燈效果實現原理,就是利用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];
????
}
?
?
總結
以上是生活随笔為你收集整理的iPhone走马灯控件实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iOS 13.3正式版什么时候会来
- 下一篇: 中国建设银行如何查询账单明细(目前的中国