- ViewController里的代码 :
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let anyobjectype : AnyObject.Type = (NSClassFromString("testReflect.ABC"))!
// testReflect为项目的name, ABC为要加载的UIVIEW类的类名
let nsobjectype : NSObject.Type = anyobjectype as! NSObject.Type
let rec: AnyObject = nsobjectype
let currentView: UIView = rec as! UIView
self.view.addSubview(currentView)
}}
-
uiview 里的代码
class ABC: UIView {override init(frame: CGRect) {
super.init(frame: frame) //把背景色设为透明 print("you got it override init") self.backgroundColor = UIColor.green
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
// Only override draw() if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
override func draw(_ rect: CGRect) {print("you got it draw") //self.backgroundColor = UIColor.brown
}
}
### 想通过一个uiview的类名的字符串(这里为"ABC"),来加载这个类?我用的反射,但没有成功,请问怎么改呢?