swift 字符转为类,代码创建控件

时间:2023-05-26 17:44:50

在使用类之前要先获得 命名空间

通过json来获取 字符型的类名 然后创建类对象,这时候就要用到字符转类

// 从info字典中获取到 命名空间 转为字符型

let NS = NSBundle.mainBundle().infoDictionary!["CFBundleExecutable"] as! string

let clss:AnyClass? = NSClassFormString(NS +"."+字符类名)

let Vcla = clas as! UIViewController.TYpe //把类的类型转为 相应类型

let vc = Vcla.init() //初始化一个对象

修改命名空间

swift 字符转为类,代码创建控件

创建 控件

方式:代码创建,xib创建,nib创建

一般都需要重写init 在其中添加相应属性或者相应对象

在Switf 中 代码创建时 重写init之后 会提示创建

required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }

这个init 是限制我们只能用代码创建控件,防止混淆

根据一个控件算出另一个控件   公式

//那个控件 的 什么属性 等于 另外一个控件 的 什么属性 乘以 多少 加上多少

let massWidth = NSLayoutConstraint(item: 控件1, attribute: 控件1的属性 , relatedBy: NSLayoutRelation.Equal(), toItem: 另一个控件, attribute: 对应属性, multiplier: 倍数, constant: 再加多少 )

//给控件设置宽度

addConstraint(massWidth)