将XIB文件自动转换为Objective-C源代码文件
nib2objc 是一个小巧的转换工具,可以将 XIB 文件自动转换为 Objective-C 的源代码文件。 通常,考虑到程序的效率时,才将XIB直接转换为源代码文件。但是这样一来,通过Interface Builder设定
nib2objc 是一个小巧的转换工具,可以将 XIB 文件自动转换为 Objective-C 的源代码文件。
通常,考虑到程序的效率时,才将XIB直接转换为源代码文件。但是这样一来,通过Interface Builder设定的实例变量与行为方法的接续也没有了,需要从新手写。但是,该工具的源代码是公开的,稍加修饰,就能完成大部分工作。
使用的时候,首先下载的工程代码并用XCode编译一下,会生成一个命令行程序文件 nib2objc。然后如下所示执行转换:
$ nib2objc WebView.xib > WebView.m

像是上面view转换后会输出以下代码:
UIBarButtonItem *view39 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
view39.frame = CGRectMake(0.0, 0.0, 0.0, 0.0);
view39.enabled = YES;
view39.style = UIBarButtonItemStylePlain;
view39.tag = 0;
view39.width = 0.000;
UIBarButtonItem *view64 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:nil action:nil];
view64.frame = CGRectMake(0.0, 0.0, 0.0, 0.0);
view64.enabled = YES;
view64.style = UIBarButtonItemStylePlain;
view64.tag = 0;
view64.width = 0.000;
UIBarButtonItem *view57 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
view57.frame = CGRectMake(0.0, 0.0, 0.0, 0.0);
view57.enabled = YES;
view57.style = UIBarButtonItemStylePlain;
view57.tag = 0;
view57.width = 0.000;
UIBarButtonItem *view33 = [[UIBarButtonItem alloc] initWithTitle:(null) style:UIBarButtonItemStylePlain target:nil action:nil];
view33.frame = CGRectMake(0.0, 0.0, 0.0, 0.0);
view33.enabled = YES;
view33.image = nil;
view33.style = UIBarButtonItemStylePlain;
view33.tag = 0;
view33.width = 0.000;
UIBarButtonItem *view66 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
view66.frame = CGRectMake(0.0, 0.0, 0.0, 0.0);
view66.enabled = YES;
view66.style = UIBarButtonItemStylePlain;
view66.tag = 0;
view66.width = 0.000;
UIWebView *view31 = [[UIWebView alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, 460.0)];
view31.frame = CGRectMake(0.0, 0.0, 320.0, 460.0);
view31.alpha = 1.000;
view31.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
view31.backgroundColor = [UIColor colorWithWhite:1.000 alpha:1.000];
view31.clearsContextBeforeDrawing = YES;
view31.clipsToBounds = YES;
view31.contentMode = UIViewContentModeScaleToFill;
view31.detectsPhoneNumbers = NO;
view31.hidden = NO;
view31.multipleTouchEnabled = YES;
view31.opaque = YES;
view31.scalesPageToFit = YES;
view31.tag = 0;
view31.userInteractionEnabled = YES;
UIBarButtonItem *view56 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemStop target:nil action:nil];
view56.frame = CGRectMake(0.0, 0.0, 0.0, 0.0);
view56.enabled = YES;
view56.style = UIBarButtonItemStylePlain;
view56.tag = 0;
view56.width = 0.000;
UIBarButtonItem *view48 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
view48.frame = CGRectMake(0.0, 0.0, 0.0, 0.0);
view48.enabled = YES;
view48.style = UIBarButtonItemStylePlain;
view48.tag = 0;
view48.width = 0.000;
UIToolbar *view32 = [[UIToolbar alloc] initWithFrame:CGRectMake(0.0, 416.0, 320.0, 44.0)];
view32.frame = CGRectMake(0.0, 416.0, 320.0, 44.0);
view32.alpha = 1.000;
view32.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin;
view32.barStyle = UIBarStyleBlackTranslucent;
view32.clearsContextBeforeDrawing = NO;
view32.clipsToBounds = NO;
view32.contentMode = UIViewContentModeScaleToFill;
view32.hidden = NO;
view32.multipleTouchEnabled = NO;
view32.opaque = NO;
view32.tag = 0;
view32.userInteractionEnabled = YES;
UIBarButtonItem *view34 = [[UIBarButtonItem alloc] initWithTitle:(null) style:UIBarButtonItemStylePlain target:nil action:nil];
view34.frame = CGRectMake(0.0, 0.0, 0.0, 0.0);
view34.enabled = YES;
view34.image = nil;
view34.style = UIBarButtonItemStylePlain;
view34.tag = 0;
view34.width = 0.000;
UIBarButtonItem *view36 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
view36.frame = CGRectMake(0.0, 0.0, 0.0, 0.0);
view36.enabled = YES;
view36.style = UIBarButtonItemStylePlain;
view36.tag = 0;
view36.width = 0.000;
UIView *view27 = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, 460.0)];
view27.frame = CGRectMake(0.0, 0.0, 320.0, 460.0);
view27.alpha = 1.000;
view27.autoresizingMask = UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleBottomMargin;
view27.backgroundColor = [UIColor colorWithWhite:1.000 alpha:1.000];
view27.clearsContextBeforeDrawing = NO;
view27.clipsToBounds = NO;
view27.contentMode = UIViewContentModeScaleToFill;
view27.hidden = NO;
view27.multipleTouchEnabled = NO;
view27.opaque = YES;
view27.tag = 0;
view27.userInteractionEnabled = YES;
UIBarButtonItem *view38 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
view38.frame = CGRectMake(0.0, 0.0, 0.0, 0.0);
view38.enabled = YES;
view38.style = UIBarButtonItemStylePlain;
view38.tag = 0;
view38.width = 0.000;
UIBarButtonItem *view35 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemRefresh target:nil action:nil];
view35.frame = CGRectMake(0.0, 0.0, 0.0, 0.0);
view35.enabled = YES;
view35.style = UIBarButtonItemStylePlain;
view35.tag = 0;
view35.width = 0.000;
[view27 addSubview:view31];
[view32 addSubview:view33];
[view32 addSubview:view34];
[view32 addSubview:view36];
[view32 addSubview:view38];
[view32 addSubview:view39];
[view32 addSubview:view48];
[view32 addSubview:view57];
[view32 addSubview:view35];
[view32 addSubview:view56];
[view32 addSubview:view64];
[view32 addSubview:view66];
[view27 addSubview:view32];

浙公网安备 33010602011771号