1. 程式人生 > >(素材原始碼)swanzhu學IOS(二)UI之_NSTimer

(素材原始碼)swanzhu學IOS(二)UI之_NSTimer

//
//  ZYViewController.m
//  SelectorTime
//
//  Created by mac on 15-8-3.
//  Copyright (c) 2015年 zhiyou. All rights reserved.
//

#import "ZYViewController.h"

@interface ZYViewController ()
{
//    全域性變數
    NSTimer *timer;
}
@end

@implementation ZYViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}
//思路
//1  建立5個label用來顯示數字和冒號
//2  開啟計時器(設定三個計數器:秒計數器,分鐘計數器,小時計數器)使用拼接字串的方法讓數字顯示在label上;
//3  建立nstimer
- (void)viewDidLoad
{
    [super viewDidLoad];
    
    UILabel *label1=[[UILabel alloc] initWithFrame:CGRectMake(40, 100, 60, 60)];
    
[email protected]
"00"; label1.tag=1; label1.backgroundColor=[UIColor blueColor]; label1.textAlignment=NSTextAlignmentCenter; label1.textColor=[UIColor whiteColor]; [self.view addSubview:label1]; UILabel *label2=[[UILabel alloc] initWithFrame:CGRectMake(100, 100, 10, 60)]; [email protected]
":"; [self.view addSubview:label2]; UILabel *label3=[[UILabel alloc] initWithFrame:CGRectMake(110, 100, 60, 60)]; [email protected]"00"; label3.tag=3; label3.backgroundColor=[UIColor blueColor]; label3.textColor=[UIColor whiteColor]; label3.textAlignment=NSTextAlignmentCenter; [self.view addSubview:label3]; UILabel *label4=[[UILabel alloc] initWithFrame:CGRectMake(170, 100, 10, 60)];
[email protected]
":"; [self.view addSubview:label4]; UILabel *label5=[[UILabel alloc] initWithFrame:CGRectMake(180, 100, 60, 60)]; [email protected]"00"; label5.tag=5; label5.backgroundColor=[UIColor blueColor]; label5.textAlignment=NSTextAlignmentCenter; label5.textColor=[UIColor whiteColor]; [self.view addSubview:label5]; // 開啟定時器 timer=[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(onTimer) userInfo:nil repeats:YES]; btn1=[UIButton buttonWithType:UIButtonTypeCustom]; btn1.frame=CGRectMake(50, 300, 50, 50); btn1.backgroundColor=[UIColor redColor]; [btn1 setTitle:@"暫停" forState:UIControlStateNormal]; [btn1 addTarget:self action:@selector(click) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:btn1]; btn2=[UIButton buttonWithType:UIButtonTypeCustom]; btn2.frame=CGRectMake(130, 300, 50, 50); btn2.backgroundColor=[UIColor redColor]; [btn2 setTitle:@"清零" forState:UIControlStateNormal]; [btn2 addTarget:self action:@selector(onClick) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:btn2]; } -(void)click{ open=!open; if (open==YES) { [btn1 setTitle:@"開始" forState:UIControlStateNormal]; [timer invalidate]; timer=nil; }else{ [btn1 setTitle:@"暫停" forState:UIControlStateNormal]; timer= [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(onTimer) userInfo:nil repeats:YES]; } } -(void)onClick{ UILabel *label1=(UILabel *)[self.view viewWithTag:1]; UILabel *label3=(UILabel *)[self.view viewWithTag:3]; UILabel *label5=(UILabel *)[self.view viewWithTag:5]; [email protected]"00"; sCount=mCount=hCount=0; } -(void)onTimer{ //viewWithTag 通過tag來尋找控制元件 // 一定要在父檢視查詢 UILabel *label1=(UILabel *)[self.view viewWithTag:1]; UILabel *label3=(UILabel *)[self.view viewWithTag:3]; UILabel *label5=(UILabel *)[self.view viewWithTag:5]; // 改變標題 sCount++; if (sCount==59) { sCount=0; mCount++; [self setLabelAnimations:label3]; label3.text=[NSString stringWithFormat:@"%d",mCount]; if (mCount==59) { mCount=0; hCount++; [self setLabelAnimations:label1]; label1.text=[NSString stringWithFormat:@"%d",hCount]; } } label5.text=[NSString stringWithFormat:@"%d",sCount]; // 2做動畫 封裝動畫(label做動畫,把label傳到動畫中) [self setLabelAnimations:label5]; } -(void)setLabelAnimations:(UILabel *)labels{ [UIView beginAnimations:nil context:nil]; [UIView setAnimationDuration:0.9]; [UIView setAnimationTransition:6 forView:labels cache:YES]; [UIView commitAnimations]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end

相關推薦

素材原始碼swanzhuIOSUI_NSTimer

// // ZYViewController.m // SelectorTime // // Created by mac on 15-8-3. // Copyright (c) 2015年 zhiyou. All rights reserved. // #imp

素材原始碼swanzhuIOS打飛機

效果圖: 部分程式碼: // // WarViewController.m // DaFeiJi // // Created by mac on 15-8-7. // Copyright (c) 2015年 zhiyou. All rights rese

SpringMVC增刪改查原始碼,新手SpringMVC最好的辦法就是自己寫一套增刪改查

最近在自學SpringMVC,有Spring的基礎,但不是很深,僅存在於表面。當前在手書籍有《SpringMVC學習指南》 個人認為學習一種MVC框架時,當入了個門之後可以自己寫一套增刪改查,這樣可以

貓貓IOS三十UIQuartz2D畫圖片畫文字

回頭看了看自己寫的部落格,貓貓決定以後更改風格 本意是想大家看效果直接拷貝程式碼能用,註釋齊全也方便學習,但是發現這樣對新手學習特別困難,以後素材原始碼不會上傳了,有想要的可以去群裡找。 以後風格基本是–>看標題–>看目錄–>看圖片–>

房價是一定要跌的原創首發,深度好文 ——何林中國房地產大策劃

原創作者:何學林中國策劃一人 目前是房地產整個都在跌,但筆者是在房價一片喊漲聲中說的。當時遭到了普遍一致的反對,反對者的觀點是房價一定要漲,不可能跌,因為地球只有一個,土地越來越少,所以房價一定是 漲的。現在看來這種觀點和理由很幼稚,但當時確實都持這種觀點,在房

常用的Maven命令下載原始碼,打包,部署,測試

下載原始碼:mvn dependency:sources 下載註釋mvn dependency:resolve -Dclassifier=javadoc部署到Tomcatmvn tomcat:redeploy跳過測試階段:mvn package -DskipTests臨時性跳

某小型公司持續整合工具jenkins實踐JAVA WEB、Android、IOS、Html

前言 本文可能是網上最全的一篇全端jenkins部署解決方案介紹的文章,一直以來,領導都想解決程式碼提交和打包問題,尤其是小公司,打包流程混亂,造成線上版本和程式碼庫git或svn中程式碼不一致問題。加入jenkins陣營,解決眾多發包難題,顯得刻不容緩。

U3D 簡化版跳一跳小遊戲 實現新手入門 原始碼下載連結,整個工程檔案

今年三月份在CSDN上傳了一個資源,U3D版本跳一跳小遊戲的原始碼,並附帶了下述的說明,現在補充一篇部落格,簡單說一下具體是怎麼實現的。(新手入門)使用U3D開發的跳一跳小遊戲,入門級,沒有複雜的程式碼,只是簡單的功能實現,程式碼使用C#,unity版本2017 適合初學者提

JNI學習C原始碼中Log輸出及常見錯誤

瞭解jni JNI 即Java Native Interface ,Java本機介面。可以實現Java和C/C++之間的相互呼叫。 為什麼使用JNI? 擴充套件了Java虛擬機器的能力,C語言可以進行驅動開發,比如wifi共享熱點的驅動 Native c

NLP ---分詞詳解常見的五種分詞技術

上一篇我們講了N一最短路徑方法、基於詞的n元文法模型,本節將主要介紹由字構詞方法、基於詞感知機演算法的漢語分詞方法、基於字的生成模型和區分式模型相結合的漢語分詞方法,下面我們就開始講解由字構詞的方法: 由字構詞方法 由字構詞方法的由來 其實這個方法我們在前面講解HMM和CRF時就一直

php微信支付僅pc端掃碼支付模式詳細步驟

https://segmentfault.com/a/1190000008606526 一. 首先你們公司開通微信支付功能後,會收到一份郵件,裡面有賬戶相關資訊,一般有:微信支付商戶號,商戶平臺登入帳號,商戶平臺登入密碼,申請對應的公眾號,公眾號APPID。 1.下

swanzhuios(四)UIScrollView與UIPageControl

// // ZYAppDelegate.m // ScrollView_Page // // Created by mac on 15-8-13. // Copyright (c) 2015年 baidu. All rights reserved. //

iOS維碼快速開啟相機讀取維碼】

上一篇文章寫了怎麼生成二維碼,這兒就說說怎麼讀取吧,反正也很簡單,iOS封裝的太強大了 步驟呢就是這樣: 讀取二維碼需要匯入AVFoundation框架#import <AVFoundation/AVFoundation.h> 1:利用攝像頭識別二維碼中的

小白開發iOSOC_ block數據類型2015-08-08

main nsobject 改變 char typedef 能夠 div sel 方法 // // main.m // block數據類型 // // Created by admin on 15/8/12. // Copyright (c) 201

小白開發iOSOC_ 經常使用結構體2015-08-14

轉換成 tracking 小白 epo idt rgb 表示範圍 dsm tor // // main.m // 經常使用結構體 // // Created by admin on 15/8/13. // Copyright (c) 2015年 admin.

小白開發iOSOC_ SEL數據類型2015-08-10

family face -h per imp font ng- for ret // // main.m // SEL數據類型 // // Created by admin on 15/8/12. // Copyright

蘋果iOS裝置Identifier與名稱對應大全swift原始碼2018~2019

因為開發需要,重新整理了下這塊的程式碼。因為比較通用。所以發出來給需要的人,複製可用。 其中包含了iphone ,ipad,apple watch ,itouch,模擬器等的識別。如果有不全的話請留言。更新日期為2018年11月初。預估2019蘋果新品釋出之前均可使用。  

計算機圖形實驗—— 直線Bresenham演算法原始碼

 1. Bresenham演算法核心:(詳細原理見末尾) 理解光柵化:畫素點只能是整數點。 藉助決策變數 的正負號判斷下一個點座標,從而避免了計算直線斜率所用乘除法,只需要用加減法。 預設斜率絕對值在區間(0,1)時,即abs(dx)>abs(dy),步進方

計算機圖形實驗——中點畫圓演算法實現及其原始碼

1.中點畫圓演算法簡介:(以第一象限內靠近Y軸的1/8圓為例) 由於圓的對稱性,只需要考慮的圓上的點。舉例: 引入建構函式:。 分別表示點在圓外,圓上,圓內。 如圖3-8所示:.M是P1和P2中點。 當F(M)<0時,說明M在圓內,進而得知P1離圓弧更近;否則P

從零開始caffe:mnist手寫數字識別網路結構模型和超引數檔案的原始碼閱讀

下面為網路結構模型 %網路結構模型 name: "LeNet" #網路的名字"LeNet" layer { #定義一個層 name: "mnist" #層的名字"mnist" type: