swift 中的set方法

swift中set方法的簡單實用

以一個簡單的UITableViewCell為例子


class ListCell: UITableViewCell {

    var nameLab:UILabel!
    var rssiLab:UILabel!
    
    var name:String?{
        willSet{
            print("將要改變1")
        }
        didSet{
            print("已經(jīng)改變1")
            self.nameLab.text  = self.name!
        }
    }
    var rssi:String?{
        willSet{
            print("將要改變2")
        }
        
        didSet{
            print("已經(jīng)改變2")
            self.rssiLab.text = self.rssi!
        }
    }
    
    override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
        super.init(style: style, reuseIdentifier: reuseIdentifier);
        name = nil
        rssi = nil
        setupUI()
    }
    
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
        
    }
    
    func setupUI() {
        nameLab = UILabel.init();
        nameLab.font = UIFont.systemFont(ofSize: 14)
        nameLab.textAlignment = NSTextAlignment.left;
        nameLab.textColor = UIColor.black;
        addSubview(self.nameLab)
        
        rssiLab = UILabel.init();
        rssiLab.font = UIFont.systemFont(ofSize: 13)
        nameLab.textAlignment = NSTextAlignment.center;
        nameLab.textColor = UIColor.black;
        self.addSubview(self.rssiLab)
    }
    
    override func layoutSubviews() {
        super.layoutSubviews()
        
        self.nameLab.frame = CGRect.init(x: 20, y: 20, width: 100, height: 28);
        self.rssiLab.frame = CGRect.init(x: 140, y: 20, width: 100, height: 28);
    }
    
    override func awakeFromNib() {
        super.awakeFromNib()
        // Initialization code
    }

    override func setSelected(_ selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)

        // Configure the view for the selected state
    }

}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let reusedID:String = "Cell"
        let cell:ListCell = tableView.dequeueReusableCell(withIdentifier: reusedID) as! ListCell
        
        let peripheral:CBPeripheral = self.datas[indexPath.row] as! CBPeripheral;
//        cell.nameLab.text = peripheral.name
//        cell.rssiLab.text = "-50"
        cell.name = peripheral.name;
        cell.rssi = "-50";
    
        return cell;
    }


打印的結(jié)果


將要改變1
已經(jīng)改變1
將要改變2
已經(jīng)改變2

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容