在swift编程(http://www.maiziedu.com/course/ios/16-161/)中,我们都会遇到这样两个问题,如何把字符转为类和代码创建控件的方法,下面就具体讲解这两个知识点@H_301_15@
在使用类之前要先获得命名空间@H_301_15@
通过json来获取字符型的类名然后创建类对象,这时候就要用到字符转类@H_301_15@
//从info字典中获取到命名空间转为字符型@H_301_15@
letNS=NSBundle.mainBundle().infoDictionary!["CFBundleExecutable"]as!string@H_301_15@
letclss:AnyClass?=NSClassFormString(NS+"."+字符类名)@H_301_15@
letVcla=clasas!UIViewController.TYpe//把类的类型转为相应类型@H_301_15@
letvc=Vcla.init()//初始化一个对象@H_301_15@
创建控件@H_301_15@
一般都需要重写init在其中添加相应属性或者相应对象@H_301_15@
在Switf中代码创建时重写init之后会提示创建@H_301_15@
requiredinit?(coderaDecoder:NSCoder){
fatalError("init(coder:)hasnotbeenimplemented")
}@H_301_15@
这个init是限制我们只能用代码创建控件,防止混淆@H_301_15@
根据一个控件算出另一个控件公式@H_301_15@
//那个控件的什么属性等于另外一个控件的什么属性乘以多少加上多少@H_301_15@
letmassWidth=NSLayoutConstraint(item:控件1,attribute:控件1的属性 ,relatedBy:NSLayoutRelation.Equal(),toItem:另一个控件,attribute:对应属性,multiplier:倍数,constant:再加多少)@H_301_15@
//给控件设置宽度@H_301_15@
addConstraint(massWidth)@H_301_15@