Swift- lazy 懒加载

我们在使用OC 的时候会写一些懒加载 用的的时候才创建 提高了系统的性能 
Swift 给我们提供了一个属性 lazy 专门的延迟加载属性 方便了我们的编程 也提高了系统的性能 
我们在写UI控件要多使用懒加载方式 
import UIKit
import Foundation


let cellName: String = "myCell"


class ViewController: UIViewController,UITableViewDelegate,UITableViewDataSource{
    
    var clickCount: Int = 0
    
    @IBOutlet weak var tableView: UITableView!

    override func viewDidLoad() {
        super.viewDidLoad()
        
        
        let myButton = UIButton()
        
        myButton .setTitle("腾讯",forState: UIControlState.normal)
        
        
        myButton.backgroundColor = UIColor.cyanColor()
        
        myButton.frame = CGRect(x: 0,y: 160,width: 375,height: 50)
        
        myButton .addTarget(self,action: "btnClick:",forControlEvents: UIControlEvents.TouchUpInside)
        
        self.view.addSubview(myButton)
        
        self.view.addSubview(myLabel)
        
        // Do any additional setup after loading the view,typically from a nib.
    }

    func tableView(tableView: UITableView,numberOfRowsInSection section: Int) -> Int {
        return 20;
    }
    
    func btnClick (button :UIButton) {
        NSLog("点击")
    }
    
    
    lazy var myLabel: UILabel = {
        //color 是常量
        let color = UIColor.redColor()
        
        self.view.backgroundColor = color
        
        let rect = CGRect(x: 0,y: 100,height: 50)
        
        let myLabel = UILabel()
        
        //mark -
        
        myLabel.frame = rect
        
        myLabel.text = "百度"
        
        myLabel.backgroundColor = UIColor.greenColor()
        
        myLabel.textAlignment = NSTextAlignment.Center
        
        self.view.addSubview(myLabel)
        
        return myLabel
    }()
    
    //mark - 懒加载
    /*
    lazy var buyButton: UIButton = {
        
        let buyButton = UIButton(type: UIButtonType.Custom)
        buyButton.setTitle("付款",forState: UIControlState.normal)
        buyButton.setBackgroundImage(UIImage(named: "button_cart_add"),forState: UIControlState.normal)
        buyButton.layer.cornerRadius = 15
        buyButton.layer.masksToBounds = true
        return buyButton
    }()
    */
    
    
    func tableView(tableView: UITableView,cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        var cell = tableView.dequeueReusableCellWithIdentifier(cellName);UITableViewCell?()
        if (cell == nil) {
            
            cell = UITableViewCell(style: .Default,reuseIdentifier: cellName)
        }
        cell!.textLabel?.text = "test"
        return cell!
    }
    
    
    
    
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // dispose of any resources that can be recreated.
    }


}

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...