国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

一個iOS上的秒表小應用的實現方法分享

2019-10-21 18:57:05
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了一個iOS上的秒表小應用的實現方法分享,代碼基于傳統的Objective-C,需要的朋友可以參考下
 

模仿實現一下ios系統應用時鐘里的秒表程序,就是這個應用:

一個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;  

 

 


 

一個iOS上的秒表小應用的實現方法分享

一個iOS上的秒表小應用的實現方法分享

一個iOS上的秒表小應用的實現方法分享

待改進的地方:
1.對于時間的計時操作和UI事件應該分不同線程實現,這里我偷懶了
2.對于時間的表示方法其實也是很偷懶的,沒有按照標準的秒分進位表示



注:相關教程知識閱讀請移步到IOS開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 大姚县| 武鸣县| 荃湾区| 崇义县| 横峰县| 曲靖市| 三门县| 玉山县| 惠来县| 葫芦岛市| 庆阳市| 建宁县| 合江县| 全州县| 阳江市| 萨嘎县| 永靖县| 贵阳市| 通海县| 花莲县| 辽源市| 剑阁县| 柘城县| 嘉禾县| 大石桥市| 台湾省| 怀来县| 韩城市| 班玛县| 宝坻区| 兴文县| 项城市| 汝城县| 珲春市| 福泉市| 扶沟县| 偏关县| 双峰县| 车险| 溧水县| 五莲县|