iOS開發-舒爾特表

來源:互聯網
上載者:User

iOS開發-舒爾特表
頁面配置 根據上面的概念,大概頁面配置就是3*3的九宮格,一般是選擇數字練習,也沒有特別的多弄弄,    Demo實現 上面中的介面主要都是數字1,因此需要的一個方法產生一個隨機的數組,方法如下,產生一個隨機不重複的數組大概的規則就是首先頂一個數組,之後的話,需要將數組打亂,使用隨機數隨機產生索引即可:  - (NSArray *)getDataArray{    //需要展示的數組    NSMutableArray *arr=[NSMutableArray array];    for (NSInteger i=1; i<10; i++) {        [arr addObject:@(i)];    }    NSInteger count=[arr count];    //產生隨機數組    for (NSInteger i=0; i<count; i++) {        NSInteger index=arc4random()%(count-i)+i;        [arr exchangeObjectAtIndex:index withObjectAtIndex:i];    }    return arr;}將數組中的值賦值給頁面的按鈕: - (void)initButtonTitle{    //執行個體化結果集的可變數組    self.resultArr=[NSMutableArray array];    NSArray *arr=[self getDataArray];    for (UIButton *button in self.visionButtons) {        NSString *result=[arr[button.tag-1]stringValue];        [button setTitle:result forState:UIControlStateNormal];        //重新開始的時候要重新設定按鈕的背景和狀態        [button setBackgroundColor:[UIColor yellowColor]];        [button setEnabled:YES];    }    [_timerLabel setText:@"00:00"];    self.timer=[NSTimer scheduledTimerWithTimeInterval:0.1 invocation:nil repeats:YES];}在viewDidLoad啟動的時候調用對應的程式: 1[self initButtonTitle];    做到這一步基本上這個程式完成差不多了,然後就是計時,完成之後統計,閑來看下具體的效果,然後看代碼可能會更好一點:   功能基本上就是設定按鈕的背景顏色,是否可以點擊,計時,清零,彈框,顯示之前點擊的結果,一步一步的分析: 定義成員變數計時和儲存結果:  @interface ViewController ()@property NSMutableArray *resultArr;@property NSTimer *timer;@property NSDate  *beginDate;@end設定定時器:  self.timer=[NSTimer scheduledTimerWithTimeInterval:0.1 invocation:nil repeats:YES];設定按鈕的背景顏色和顯隱:  [button setBackgroundColor:[UIColor yellowColor]];       [button setEnabled:YES];統計時間:  NSInteger allTime=[_timer.fireDate timeIntervalSinceDate:_beginDate];   NSString *timeFormat=[NSString stringWithFormat:@"%02ld:%02ld",allTime/1000,allTime%1000];   [_timerLabel setText:timeFormat];判斷結果,如果所有的結果是升序的那麼是成功的,否則就是失敗的:  //判斷一個數組是不是升序- (BOOL)getArrayAsc:(NSArray *)originalArr{    for (NSInteger i=0; i<[originalArr count]-1; i++) {        if (originalArr[i]>originalArr[i+1]) {            return NO;        }    }    return  YES;}所有按鈕的點擊事件如下:  - (IBAction)getResult:(id)sender {    UIButton *button=(UIButton *)sender;    //設定背景顏色    [button setBackgroundColor:[UIColor greenColor]];    //按鈕點擊一次就不再點擊    [button setEnabled:NO];    NSInteger value=[[[button titleLabel] text] integerValue];    [self.resultArr addObject:[NSNumber numberWithInteger:value]];    //點擊第一個按鈕之後設定開始時間    if ([self.resultArr count]==1) {        //遊戲開始時間        _beginDate=[NSDate date];        //遊戲開始        [_timer fire];    }    NSInteger allTime=[_timer.fireDate timeIntervalSinceDate:_beginDate];    NSString *timeFormat=[NSString stringWithFormat:@"%02ld:%02ld",allTime/1000,allTime%1000];    [_timerLabel setText:timeFormat];    //所有的點擊完成之後的調用    if ([self.resultArr count]==9) {        //銷毀定時器        [_timer invalidate];        //彈框        NSString *tip;        if ([self getArrayAsc:self.resultArr]) {            tip=@"恭喜你,通過比賽";        }else{            tip=@"不好意思,比賽失敗";        }        //將點擊的結果使用逗號進行拼接        NSString *resultStr=[NSString stringWithFormat:@"%@",[self.resultArr componentsJoinedByString:@","]];                 UIAlertView *alterView=[[UIAlertView alloc] initWithTitle:tip message:resultStr delegate:nil cancelButtonTitle:@"確定" otherButtonTitles:nil];        [alterView  show];    }} ViewController.m中的代碼:  ////  ViewController.m//  TableVision////  Created by keso on 15/1/18.//  Copyright (c) 2015年 keso. All rights reserved.// #import "ViewController.h" @interface ViewController ()@property NSMutableArray *resultArr;@property NSTimer *timer;@property NSDate  *beginDate;@end @implementation ViewController - (void)viewDidLoad {    [super viewDidLoad];    // Do any additional setup after loading the view, typically from a nib.    [self initButtonTitle];    //    self.timer=[NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:nil userInfo:nil repeats:YES];}- (void)triggerTime:(NSTimer *)sender{     }- (void)initButtonTitle{    //執行個體化結果集的可變數組    self.resultArr=[NSMutableArray array];    NSArray *arr=[self getDataArray];    for (UIButton *button in self.visionButtons) {        NSString *result=[arr[button.tag-1]stringValue];        [button setTitle:result forState:UIControlStateNormal];        //重新開始的時候要重新設定按鈕的背景和狀態        [button setBackgroundColor:[UIColor yellowColor]];        [button setEnabled:YES];    }    [_timerLabel setText:@"00:00"];    self.timer=[NSTimer scheduledTimerWithTimeInterval:0.1 invocation:nil repeats:YES];}- (IBAction)oneMore:(id)sender {    [self initButtonTitle];} - (NSArray *)getDataArray{    //需要展示的數組    NSMutableArray *arr=[NSMutableArray array];    for (NSInteger i=1; i<10; i++) {        [arr addObject:@(i)];    }    NSInteger count=[arr count];    //產生隨機數組    for (NSInteger i=0; i<count; i++) {        NSInteger index=arc4random()%(count-i)+i;        [arr exchangeObjectAtIndex:index withObjectAtIndex:i];    }    return arr;} - (IBAction)getResult:(id)sender {    UIButton *button=(UIButton *)sender;    //設定背景顏色    [button setBackgroundColor:[UIColor greenColor]];    //按鈕點擊一次就不再點擊    [button setEnabled:NO];    NSInteger value=[[[button titleLabel] text] integerValue];    [self.resultArr addObject:[NSNumber numberWithInteger:value]];    //點擊第一個按鈕之後設定開始時間    if ([self.resultArr count]==1) {        //遊戲開始時間        _beginDate=[NSDate date];        //遊戲開始        [_timer fire];    }    NSInteger allTime=[_timer.fireDate timeIntervalSinceDate:_beginDate];    NSString *timeFormat=[NSString stringWithFormat:@"%02ld:%02ld",allTime/1000,allTime%1000];    [_timerLabel setText:timeFormat];    //所有的點擊完成之後的調用    if ([self.resultArr count]==9) {        //銷毀定時器        [_timer invalidate];        //彈框        NSString *tip;        if ([self getArrayAsc:self.resultArr]) {            tip=@"恭喜你,通過比賽";        }else{            tip=@"不好意思,比賽失敗";        }        //將點擊的結果使用逗號進行拼接        NSString *resultStr=[NSString stringWithFormat:@"%@",[self.resultArr componentsJoinedByString:@","]];                 UIAlertView *alterView=[[UIAlertView alloc] initWithTitle:tip message:resultStr delegate:nil cancelButtonTitle:@"確定" otherButtonTitles:nil];        [alterView  show];    }}- (void)didReceiveMemoryWarning {    [super didReceiveMemoryWarning];    // Dispose of any resources that can be recreated.}//判斷一個數組是不是升序- (BOOL)getArrayAsc:(NSArray *)originalArr{    for (NSInteger i=0; i<[originalArr count]-1; i++) {        if (originalArr[i]>originalArr[i+1]) {            return NO;        }    }    return  YES;} @end www.bkjia.com說明:部落格經個人辛苦努力所得,如有轉載會特別申明,部落格不求技驚四座,但求與有緣人分享個人學習知識,生活學習提高之用,部落格所有權歸本人和部落格園所有,如有轉載請在顯著位置給出博文連結和作者姓名,否則本人將付諸法律。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.