iOS开发练习小程序——秒表
来源:互联网 发布:网络市场环境分析 编辑:程序博客网 时间:2024/05/16 19:33
最近工作不忙,闲暇之余自学了一下object-c,体验了一把ios无敌的framework。想写个小应用练练手,给自己挑了个简单的题目:模仿实现一下ios系统应用时钟里的秒表程序,就是这个应用:
主要实现的功能:
1.由start/stop键实现计时
2.有reset/lap键实现复位和计次
需要思考的点:
1.时间的表示方法(有很多种思路)
2.计次数据的倒序排列,即计次1的数据在最底端,依次向上为计次2,计次3的时间数据
我的实现:
ARC省去了我们自行管理内存的大部分事情,写惯了c++于是舒服了很多
- (IBAction) startOrstop:(UIButton *)sender { //点击切换按钮背景图 UIImage *newImage = (checked) ? [UIImage imageNamed:@"red.png"] : [UIImage imageNamed:@"green.png"]; [leftBtn setBackgroundImage:newImage forState:UIControlStateNormal]; NSString *titlel = (checked) ? (@"Stop") : (@"Start"); [leftBtn setTitle:titlel forState:UIControlStateNormal]; NSString *titler = (checked) ? (@"Lap") : (@"Reset"); [rightBtn setTitle:titler forState:UIControlStateNormal]; if (checked) //start { timer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(updateTime) userInfo:nil repeats:YES]; }else { //stop [timer invalidate]; } checked = !checked; } - (IBAction) resetOrLap:(UIButton *)sender { static NSInteger count = 1; if (checked) //reset { time = time_lap = 0.0; timestr = [NSString stringWithFormat:@"00:00.0"]; [label setText:timestr]; list_time = list_lap = nil; count = 1; [tableview reloadData]; }else { //lap if (list_time == nil) { list_time = [[NSArray alloc]initWithObjects:timestr_lap, nil]; list_lap = [[NSArray alloc]initWithObjects:[NSString stringWithFormat:@"%d",count++], nil]; }else { #if 0 [list arrayByAddingObject:timestr]; #else NSArray *array = [[NSArray alloc]initWithObjects:timestr_lap, nil]; list_time = [array arrayByAddingObjectsFromArray:list_time]; array = [[NSArray alloc]initWithObjects:[NSString stringWithFormat:@"%d",count++], nil]; list_lap = [array arrayByAddingObjectsFromArray:list_lap]; #endif } time_lap = 0; [tableview reloadData]; } } - (float) updateTime { time+=0.1; time_lap +=0.1; timestr = [NSString stringWithFormat:@"%02d:%04.1f",(int)(time / 60) ,time - ( 60 * (int)( time / 60 ) )]; timestr_lap = [NSString stringWithFormat:@"%02d:%04.1f",(int)(time_lap / 60) ,time_lap - ( 60 * (int)( time_lap / 60 ) )]; [label setText:timestr]; return time; } - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return [list_time count]; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *tableViewIdentifier = @"tableViewIdentifier"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:tableViewIdentifier]; if (cell == nil) { cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:tableViewIdentifier]; } NSUInteger row = [indexPath row]; cell.detailTextLabel.text = [list_time objectAtIndex:row]; cell.detailTextLabel.textColor = [UIColor blackColor]; cell.detailTextLabel.font = [UIFont boldSystemFontOfSize:25.0]; cell.detailTextLabel.textAlignment = UITextAlignmentCenter; NSString *text = [[NSString alloc]initWithFormat:@"lap %@", [list_lap objectAtIndex:row]]; cell.textLabel.text = text; return cell; }
效果图:
待改进的地方:
1.对于时间的计时操作和UI事件应该分不同线程实现,这里我偷懒了
2.对于时间的表示方法其实也是很偷懒的,没有按照标准的秒分进位表示
如有发现任何错误、不妥的地方请指点,谢谢。
- iOS开发练习小程序——秒表
- iOS开发练习小程序——秒表
- iOS程序入门开发练习:秒表stopWatch
- 【iOS练习】秒表练习
- Android开发之小程序-秒表
- python小练习----秒表
- Swing小程序之秒表
- 程序日志--ios“迷你秒表”程序
- 51单片机入门程序——秒表程序示例
- Java开发小技巧 - 用“秒表”记时
- 秒表程序
- ios--秒表
- 我的第一个android小项目——秒表计时器之感受
- 练习小程序1
- 练习小程序2
- 小程序练习
- ibatis练习小程序
- 编程练习小程序
- CentOS6.4 64位系统下安装 php5.2.17 + apache2.2+mysql5.5
- YII CJuiDialog 中运行ajax CGridView
- 向Combobox插入空白行
- 腾讯Web前端JX框架入门教程(一)
- 我们是否已经忘记雅安???
- iOS开发练习小程序——秒表
- Oracle中备份表的简单sql命令
- session会话跟踪技术
- HTML的a标签href设为零操作的原因和方式
- Java Web学习笔记(六)XMLHttpRequest
- CALayer -- 层的属性
- iOS开发入门之——拖动视图
- 海量数据面试题整理
- 设计class 犹如设计type