如何快速将xib视图加载到我的viewController中?

时间:2017-01-24 19:34:19

标签: ios objective-c iphone xcode xib

我的目标c应用程序中有一个xib。但是当我试图加载这个viewController时,这花了大约1秒钟,这是一种不好的感觉......

我使用自定义字体,但我已将此正确添加到我的.plist中 我的customView类由文件所有者添加,并与出口连接。

我的代码是:

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];

    if (self)
    {
        nibname=@"MyCustomView";

        [self addSubview:
        [[[NSBundle mainBundle] loadNibNamed:nibname
                                       owner:self
                                     options:nil] objectAtIndex:0]];


    }
    return self;
}

然后,我在我的viewController中加载这个:

- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
    ...
    MyCustomXib *myview = [[MyCustomXib alloc] initWithFrame:CGRectMake(0, 0, 320, 600)];
    [self.view addSubview:myview];
    ...
}

我是否正确加载此自定义视图?

如何更快地加载此过程?

编辑1 已更正,然后阅读亚光评论:

[self.view addSubview:myview];

提供:最后错误的代码:[self.view myview];

1 个答案:

答案 0 :(得分:2)

我无法根据您所说的内容重现问题。我在您的viewDidAppear代码中添加了时间安排:

NSLog(@"%f", [[NSDate new] timeIntervalSinceReferenceDate]);
MyCustomXib *myview = [[MyCustomXib alloc] initWithFrame:CGRectMake(0, 0, 320, 600)];
[self.view addSubview:myview];
NSLog(@"%f", [[NSDate new] timeIntervalSinceReferenceDate]);

这是输出:

2017-01-24 12:47:18.812 NibLoadTest[12087:135969] 506983638.811982
2017-01-24 12:47:18.814 NibLoadTest[12087:135969] 506983638.814367

那是延迟1秒!这是一两秒千分之

因此,问题是虚幻的,或者是由您未展示的其他内容引起的。如果您正在尝试测量某事物的持续时间,衡量它。理想情况下,使用仪器;这就是它的用途。它会告诉我们花时间以及为什么。不要猜。