iOS5将.xib分配给自定义UIView类
HI有一个自定义视图类,使用下面的代码加载并放置在我的主视图中。它的原因是我想用不同的内容来填充它,而不是每次创建一个自定义的类时都可以在代码中构建一个视图,我可以在循环等中重复使用它,我在代码中工作得很好,即铺设出按钮标签等iOS5将.xib分配给自定义UIView类
但是,而不是手代码它,我想如果我创建一个新的用户界面视图,然后构建视觉上我的文本字段,标签和按钮在这个视图。
然后将其连接到我的自定义类。
这是我遇到问题的地方,如何连接此视图xib文件,以便在放置在我的代码中时可见。我已将xib文件中的自定义类属性分配给我的自定义文件,但是我还缺少了什么?
.h文件中:
#import <UIKit/UIKit.h>
@interface blogView : UIView
@end
.m文件:
#import "blogView.h"
@implementation blogView
- (id)init
{
self = [super initWithFrame:CGRectMake(0, 0, 478, 220)];
if (self != nil)
{
NSLog(@"Blog View loaded");
self.backgroundColor = [UIColor yellowColor];
UILabel *titleLbl = [[UILabel alloc] initWithFrame:CGRectMake(20, 20, 400, 40)];
[titleLbl setText:@"This is the Title"];
[self addSubview:titleLbl];
}
return self;
}
@end
我的厦门国际银行文件具有相同的名称blogView.xib这是一个视图用户界面。
在我的主视图控制器,并在viewDidLoad中我有
blogView *blogItem = [[blogView alloc]init];
[self.view addSubview:blogItem];
当我运行,这是所有工作正常,但我想链接到的.xib文件,以节省时间等 感谢
井具有环顾四周,并试图线索和建议的位我设法用下面可以做到这一点的看法:
在我的.m文件我放在/更改了以下内容:
self = [super init];
if (self != nil)
{
NSArray *theView = [[NSBundle mainBundle] loadNibNamed:@"blogView" owner:self options:nil];
UIView *nv = [theView objectAtIndex:0];
.. rest of code.
[self addSubview:nv];
.. rest of code.
非常感谢
您可能需要为您的视图控制器,并加载使用initWithNibName:bundle:
感谢后非常恼火的建议尝试本作发布前年龄,但就是无法得到这个工作,不停地崩溃。 – 2012-02-01 23:41:37
我这个奋斗了一个小时,当我重新命名视图 - 控制类。这是我在Xcode 5
- 围棋在查看部分什么工作你的XIB文件
- 点击文件所有者透明盒左侧
- 打开您的检验标签(第三个按钮,右边 - 在编辑器和组织者之间)
- 转至编辑器管理器视图选项卡下的身份检查器(左起第3个)。
- 将自定义类 - 类选项修复为您希望它响应的任何类。
让刚刚说我是浪费时间与
嗯我不能让它在init中工作,相反它似乎工作,如果你把它放在drawRect中: - (void)drawRect:(CGRect)rect { NSArray * theView = [[NSBundle mainBundle ] loadNibNamed:@“RatingPickerView”owner:self options:nil]; UIView * nv = [theView objectAtIndex:0]; [self addSubview:nv]; } – Dan2552 2012-03-19 13:53:58
但是,您如何为它制作控制器,以及如何从包含视图的控制器中引用控制器? – Dan2552 2012-03-19 14:12:23
??你是什么意思 – 2013-07-19 14:03:53