ios sdk 开发踩坑记(一)
最近临危受命,着手开发海外运营用到的IOS SDK。
由于从来没有接触过IOS界面开发,折腾了许久,
在这里记录一些经历和踩过的坑,说不定能帮到跟我一样的兄弟。
熟手就可以不用看了。
几个从0开始下手的点:
1、界面 对应 ViewController,ViewController管理自身的View(可以理解为控件)和子View。
2、ViewController的创建:新建CocoaClass ,父类 选UIViewController,勾上自动创建XIB文件(xib就是用来编辑UI布局的文件),创建出来一个xib文件,类的.h和.m文件
3、xib可以用来编辑 拖控件 ,具体布局可以自己研究,自动布局可以查一下xib的约束。控件可以设置tag,在controller里根据tag拿到控件指针用来操作。
xib层级里面可以选择控件右键绑定事件,button我用的是TouchInsideUp
4、界面的加载与显示:
//加载(打包成framework是不行的 后面讲)
YourViewController* yvc =[ [YourViewController alloc]initWithNibName:@"YourViewController" bundle:nil];
//显示在当前界面上面
[[[UIApplication sharedApplication] keyWindow].rootViewController addChildViewController:yvc];
[[[UIApplication sharedApplication] keyWindow].rootViewController.view insertSubview:loadVC.view aboveSubview:yvc.view];
遇到的坑
打包成framework后,宿主程序运行的时候提示找不到nib文件,关键点在于initWithNibName的第二个参数 bundle,填nil的话宿主程序会在自己的包里找这个nib,显然是没有的, 要在framework自己的bundle里面找
代码:
NSString *path = [[NSBundle mainBundle] pathForResource:@"YourFrameWorkName" ofType:@"framework"];
NSBundle *myBundle = [NSBundle bundleWithPath:path];
YourViewController* yvc= [[YourViewControlleralloc]initWithNibName:@"YourViewController" bundle:myBundle];