2012-02-01 64 views
6

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文件,以节省时间等 感谢

回答

14

井具有环顾四周,并试图线索和建议的位我设法用下面可以做到这一点的看法:

在我的.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. 

非常感谢

+0

嗯我不能让它在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

+0

但是,您如何为它制作控制器,以及如何从包含视图的控​​制器中引用控制器? – Dan2552 2012-03-19 14:12:23

+0

??你是什​​么意思 – 2013-07-19 14:03:53

0

您可能需要为您的视图控制器,并加载使用initWithNibName:bundle:

+0

感谢后非常恼火的建议尝试本作发布前年龄,但就是无法得到这个工作,不停地崩溃。 – 2012-02-01 23:41:37

4

我这个奋斗了一个小时,当我重新命名视图 - 控制类。这是我在Xcode 5

  1. 围棋在查看部分什么工作你的XIB文件
  2. 点击文件所有者透明盒左侧
  3. 打开您的检验标签(第三个按钮,右边 - 在编辑器和组织者之间)
  4. 转至编辑器管理器视图选项卡下的身份检查器(左起第3个)。
  5. 将自定义类 - 类选项修复为您希望它响应的任何类。

让刚刚说我是浪费时间与

相关问题