Xcode6 / Swift - 동적으로 UILabel, Timer 생성

Programming/Swift 2014.06.04 22:06 Posted by 파란크리스마스

출처 : Swiftでアニメーションとタイマーを使ってみた
Swift for UIButton addTarget
viewDidLoad 와 viewWillAppear의 차이

ViewController.swift 최초 기본 코드

//
//  ViewController.swift
//  CreateLabel
//
//  Created by test on 2014. 6. 5..
//  Copyright (c) 2014년 test. All rights reserved.
//

import UIKit

class ViewController: UIViewController {
                            
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
    
}

UILabel class내 전역변수로 추가

var label : UILabel = UILabel();

viewDidLoad 함수에 내용 추가

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        
        //var label : UILabel = UILabel();
        label.text = "test";
        label.frame = CGRectMake(50, 50, 100, 50);
        self.view.addSubview(label);
    }

실행

Timer 생성

타이머를 추가해서 1초마다 내용이 수정되는 예제

완성된 코드

//
//  ViewController.swift
//  CreateLabel
//
//  Created by test on 2014. 6. 5..
//  Copyright (c) 2014년 test. All rights reserved.
//

import UIKit

class ViewController: UIViewController {
    
    var countNum = 0;
    
    var label : UILabel = UILabel();
                            
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        
        //var label : UILabel = UILabel();
        label.text = "test";
        label.frame = CGRectMake(50, 50, 100, 50);
        self.view.addSubview(label);
        
        // 타이머 생성
        var timer = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: Selector("update"), userInfo: nil, repeats: true);
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
    
    // 1초마다 호출되는 함수
    func update() {
        label.text = String(countNum);
        countNum++;
    }

}

실행

신고


 

티스토리 툴바