Ios 加载uiscrollview所用的时间

Ios 加载uiscrollview所用的时间,ios,Ios,我试图找到在屏幕上显示uiscrollview所需的时间。我有一个uibutton,单击它可以创建一个带有很长文本的标签,并将其添加到滚动视图中。然后,scrollview作为子视图添加到self.view。我需要知道scrollview在屏幕上显示的时间。 请帮忙。提前谢谢。代码如下 - (IBAction)clickeMe:(id)sender { self.start=[NSDate date]; NSString *text="a very long text";

我试图找到在屏幕上显示uiscrollview所需的时间。我有一个uibutton,单击它可以创建一个带有很长文本的标签,并将其添加到滚动视图中。然后,scrollview作为子视图添加到self.view。我需要知道scrollview在屏幕上显示的时间。 请帮忙。提前谢谢。代码如下

- (IBAction)clickeMe:(id)sender {
    self.start=[NSDate date];

    NSString *text="a very long text";    

    NSMutableAttributedString *attributedText =
    [[NSMutableAttributedString alloc] initWithString:text];


    NSRange range1 = NSMakeRange(100, 300);
    [attributedText setAttributes:@{NSForegroundColorAttributeName:[UIColor redColor]}
                            range:range1]; 


    UILabel *label1=[[UILabel alloc]initWithFrame:CGRectMake(10, 10, 700, 1000)];
    [label1 setAttributedText:attributedText];
    [label1 setNumberOfLines:0];
    [label1 sizeToFit];
    scrollviewtest *scrollview=[[scrollviewtest alloc]init];

    scrollview.frame=CGRectMake(10, 50, 700, 1000);
    CGSize maxSize = CGSizeMake(label1.frame.size.width, CGFLOAT_MAX);
    CGSize labelSize = [label1 sizeThatFits:maxSize];

    [scrollview addSubview:label1];
    scrollview.contentSize = CGSizeMake(700, labelSize.height);
    [self.view addSubview:scrollview];
    [self performSelector:@selector(viewLoaded) withObject:nil];

}

-(void)viewLoaded
{
    NSLog(@"[viewloaded]");
    NSTimeInterval timeInterval = [self.start timeIntervalSinceNow];

    NSLog(@"time taken is %f",fabs(timeInterval));

}

上述代码的问题在于,viewLoaded实际上是在scrollview出现在屏幕上之前被调用的。

在加载您的东西之前保存时间,然后在完成加载时保存时间。 做一个减法,然后你就有了你的加载时间


它类似于php或其他语言。

用一些代码尝试一下,然后我们可以更好地帮助您。您想知道创建长标签所花的时间吗?是的,我想知道在scrollview屏幕中显示标签所花的时间尝试调用performSelectorOnMainThread而不是performSelector,您就完成了。[self-performSelectorOnMainThread:@selector(viewLoaded)with object:nil waitUntilDone:YES];尝试使用[self-performSelectorOnMainThread:@selector(viewLoaded)with object:nil waitUntilDone:YES];但是不起作用我已经尝试过了,但是在视图出现在屏幕上之前,选择器被调用了