您的位置:首页 > 其它

EALayout 第八节 如何在自己的工程里添加EALayout.framework

2015-08-04 16:38 369 查看
精简版DEMO : https://github.com/easycodingTop/EAExtraLiteDemo

Swift

https://github.com/easycodingTop/EALayout
Objective-C

https://github.com/easycodingTop/EALayoutLiteForOC
QQ群:454686295

====================================================

这一节讲如何嵌入到自己的工程


如何将 EALayout.framework 嵌入自己的工程

1. 在github下载任意一个 Demo, 将里面的 EALayout.framework 添加到自己的工程
添加好工程后,在工程 Build Settings 里, Other Linker Flags 里,添加上 -ObjC,

2. 然后执行 Demo工程目录里的 installSnippets.sh,目的是将
当前目录 CodeSnippets 里的文件

复制到 ~/Library/Developer/Xcode/UserData/CodeSnippets 目录下。

当然也可以手动复制过去。这的目的是给json添加提示。

复制完成后,重新启动一下 Xcode. (后面会讲如果自定义json里的提示)。




如何在自己的工程里使用 EALayout.framework

1. 在需要的文件里添加 import <EALayout/EALayout.h>

2. 在ViewController里定义一个变量 :
@property
(nonatomic,strong)SkinParser*
skinParser;
3. 在构造方法里添加如下代码

-(id)initWithNibName:(NSString
*)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
if (
self = [superinitWithNibName:nibNameOrNil
bundle:nibBundleOrNil] )
{
//通过一个文件名创建 SkinParser, 这里我们使用了类名
//使用类名是因为我们可以将些代码写入基类,不用每个类都再写一遍
_skinParser = [SkinParsergetParserByName:NSStringFromClass([selfclass])];

//这里设置 eventTarget, 目的是在解析如 UIButton/UIControl之类的控件
//将其作为 target 绑定到控件上,在ViewController 里只需要实现具体方法即可
_skinParser.eventTarget
= self;
}
return self;
}

4. 在 loadView 里:
-(void)loadView
{
[superloadView];
[_skinParserparse:@"selfView" view:self.view];
}
SkinParser的这个方法 :
-(UIView*)parse:(NSString*)key view:(UIView*
)view;

将json里, key 对应view的描述,设置到 view上,并且返回值为该view
如果 view 参数为空,则会通过 "class"描述的类,动态创建 View实例。

5. 在 viewDidLoad 里:
-(void)viewDidLoad
{
[self.viewspUpdateLayout];
}
这里将会对 self.view 里所有view进行布局。

6. 然后添加一个资源文件,我们添加与当前 ViewController 类名同事的一个json文件。
如果 该类叫 ViewController 那么,我们添加一个叫 ViewController.json 的文件即可

========================================================================================

敬请关注下一节:

====================================================

精简版DEMO : https://github.com/easycodingTop/EAExtraLiteDemo

Swift

https://github.com/easycodingTop/EALayout
Objective-C

https://github.com/easycodingTop/EALayoutLiteForOC
QQ群:454686295

====================================================
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: