HI有一个自定义视图类,使用以下代码加载并放置在我的主视图中。之所以我想用不同的内容填充它,而不是每次在代码中构建一个视图,如果我创建一个自定义类,我可以在循环等中重复使用它,我得到这个在代码中工作得很好,即铺设按钮标签等。
但是,如果我创建一个新的用户界面视图,而不是手动编写代码,那么在视图上构建我的文本字段,标签和按钮。
然后将其连接到我的自定义类。
这是我遇到问题的地方,如何连接此视图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
我的xib文件名为blogView.xib,它是一个View用户界面。
在我的主视图控制器和ViewDidLoad中我有
blogView *blogItem = [[blogView alloc]init];
[self.view addSubview:blogItem];
当我运行时,一切正常,但我想链接到.xib文件以节省时间等。 感谢
答案 0 :(得分: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.
非常感谢
答案 1 :(得分:4)
当我重新启动我的viewcontroller类时,我挣扎了一个小时。这在Xcode 5中对我有用
让我们说在浪费时间之后我非常恼火
答案 2 :(得分:0)
您可能希望为视图创建控制器,并使用initWithNibName:bundle:
加载该视图