(素材原始碼)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
相關推薦
(素材原始碼)swanzhu學IOS(二)UI之_NSTimer
// // ZYViewController.m // SelectorTime // // Created by mac on 15-8-3. // Copyright (c) 2015年 zhiyou. All rights reserved. // #imp
(素材原始碼)swanzhu學IOS(三)打飛機
效果圖: 部分程式碼: // // WarViewController.m // DaFeiJi // // Created by mac on 15-8-7. // Copyright (c) 2015年 zhiyou. All rights rese
SpringMVC增刪改查(附原始碼,新手學SpringMVC最好的辦法就是自己寫一套增刪改查)
最近在自學SpringMVC,有Spring的基礎,但不是很深,僅存在於表面。當前在手書籍有《SpringMVC學習指南》 個人認為學習一種MVC框架時,當入了個門之後可以自己寫一套增刪改查,這樣可以
貓貓學IOS(三十)UI之Quartz2D畫圖片畫文字
回頭看了看自己寫的部落格,貓貓決定以後更改風格 本意是想大家看效果直接拷貝程式碼能用,註釋齊全也方便學習,但是發現這樣對新手學習特別困難,以後素材原始碼不會上傳了,有想要的可以去群裡找。 以後風格基本是–>看標題–>看目錄–>看圖片–>
房價是一定要跌的(原創首發,深度好文) ——何學林中國房地產大策劃之二
原創作者:何學林中國策劃一人 目前是房地產整個都在跌,但筆者是在房價一片喊漲聲中說的。當時遭到了普遍一致的反對,反對者的觀點是房價一定要漲,不可能跌,因為地球只有一個,土地越來越少,所以房價一定是 漲的。現在看來這種觀點和理由很幼稚,但當時確實都持這種觀點,在房
常用的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.下
swanzhu學ios(四)之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:利用攝像頭識別二維碼中的
小白學開發(iOS)OC_ block數據類型(2015-08-08)
main nsobject 改變 char typedef 能夠 div sel 方法 // // main.m // block數據類型 // // Created by admin on 15/8/12. // Copyright (c) 201
小白學開發(iOS)OC_ 經常使用結構體(2015-08-14)
轉換成 tracking 小白 epo idt rgb 表示範圍 dsm tor // // main.m // 經常使用結構體 // // Created by admin on 15/8/13. // Copyright (c) 2015年 admin.
小白學開發(iOS)OC_ 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: