iPhone走马灯控件实现
走马灯效果实现原理,就是利用iPhone自带的动画来控制UILable的y轴位置:
代码如下:
@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的宽度限制了,所以须使用下面代码调用:
[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走马灯控件实现相关推荐
- Android 基础 View 系列之 仿IPhone 开关控件
极力推荐Android 开发大总结文章:欢迎收藏程序员Android 力荐 ,Android 开发者需要的必备技能 自定义View 是Android中常用的方法之一,本章实现类似于IPhone 开关控 ...
- android 仿iphone滚轮,android仿iphone滚轮控件显示效果
android仿iphone滚轮控件显示效果,供大家参考,具体内容如下 在论坛里看到的,自己弄个效果: 这个滚动的WheelView /* * Android Wheel Control. * htt ...
- Android编程之仿iPhone滚轮控件
网上看到有人写了一个滚动组件,这个不错,大家可以看看 但是,我个人觉得这里有一处不是很好,大家可以试试:不循环的情况下,如果就是最后一个选项,你把它移到最上或者最下的位置,它回滚回到选择条时,是直接跳 ...
- iPhone像素点和常用控件尺寸
iPhone像素点和常用控件尺寸 作者:wangzz 原文地址:http://blog.csdn.net/wzzvictory/article/details/8565872 1. iPhone ...
- 封装自己的控件库:iPhone静态库的应用
由于iPhone控件的极度匮乏和自定义组件在重用上的限制,在过去的项目中我们积累了大量的"纯代码"组件--因为IB本身的限制,我们无法把这些组件封装为IB组件库(本来我们想通过分发 ...
- Iphone控件大全
Iphone的常用控件有哪些?看看下面 一 视图UIView和UIWindow iphone视图的规则是:一个窗口,多个视图.UIWindow相当于电视机,UIViews相当于演员. 1.显示数据的视 ...
- iPhone iPad 各种控件默认高度
iPhone和iPad下各种常见控件的宽度和标准是一样的,所以这里就用iPhone说明. 以下是常见的几种控件的高度.Statusbar,Navigationbar和Tabbar的宽度极其图标大小. ...
- 自己定义控件-仿iphone之ToggleButtonamp;VoiceSeekBar
由于项目中须要使用开关切换button,和声音滑动控件,可是原生Android5.0版本号以下的控件实在是太挫了.尽管网上已经有非常多关于这两个控件的blog.可是我实在是找不到像iPhone这样简洁 ...
- Iphone开发(七)date picker 和 picker view,较复杂的控件
holydancer原创,如需转载,请在显要位置注明: 转自holydancer的CSDN专栏,原文地址:http://blog.csdn.net/holydancer/article/details ...
最新文章
- 据说,这是生物科研狗的真实经历……
- (一)Shiro笔记——简介、 架构分析
- linux学习比较好的网站,推荐一个好的在线学习Linux/Unix的好网站
- C++命名空间namespace
- 利用 Arthas 精准定位 Java 应用 CPU 负载过高问题
- pythondict初始化_利用defaultdict对字典进行全局初始化。
- 关于Java成员变量、局部变量、方法,在JVM的内存空间分配
- php返回类中方法,php如何获取类中所有的方法名
- 深度学习中图像预处理均值
- c语言入门数据类型详解,C语言的基本数据类型入门教程
- 字符串转换为合法IP地址
- 【WEB端移动端】企业官网高保真Axure原型模板
- 程序员如何利写代码用抖音帮助自己增加额外收入?
- 数据结构及算法之异或
- 如何在线翻译PDF文件
- 光电玻璃LED透明屏是黑科技?揭秘玻璃LED透明屏原理
- 应用软件 故障隔离_隔离软件工程师生命中的一天
- UVA 12627 Erratic Expansion
- 马云:等阿里IPO时你就知道我们赚多少了
- Spring Security授权_注解设置访问控制