標籤:frame idt label add ext been origin require views
1、建立自訂控制項
import UIKit class CustomView: UIView { var lab:UILabel! var btn:UIButton! /************ 將需要添加的子控制項在這裡進行初始化 *****************************/ override init(frame: CGRect) { super.init(frame: frame) //初始化 lab = UILabel() lab.textAlignment = .center lab.font = UIFont.systemFont(ofSize: 12) self.addSubview(lab) btn = UIButton() self.addSubview(btn) } /************ 設定子控制項的位置 *****************************/ override func layoutSubviews() { super.layoutSubviews() // 設定 子控制項 frame, 也可以在這裡使用自動布局 lab.frame = CGRect(x:10, y:10, width:100, height:40) btn.frame = CGRect(x:lab.frame.origin.x, y:lab.frame.maxY + 10, width:100, height:40) } /************ 傳入model對子控制項進行配置,這裡暫用NSObject *****************************/ func setUp(model:NSObject) { lab.text = "你好"//model.xx btn.setTitle("確定", for: .normal) //title:model.xx } required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") }}
2、使用自訂控制項
//純程式碼 view let view = CustomView() view.frame = CGRect(x:10, y:100, width:200, height:100) view.backgroundColor = UIColor.cyan view.setUp(model: "" as NSObject) self.view.addSubview(view)
swift 純程式碼自訂控制項