Ios 加载uiscrollview所用的时间
我试图找到在屏幕上显示uiscrollview所需的时间。我有一个uibutton,单击它可以创建一个带有很长文本的标签,并将其添加到滚动视图中。然后,scrollview作为子视图添加到self.view。我需要知道scrollview在屏幕上显示的时间。 请帮忙。提前谢谢。代码如下Ios 加载uiscrollview所用的时间,ios,Ios,我试图找到在屏幕上显示uiscrollview所需的时间。我有一个uibutton,单击它可以创建一个带有很长文本的标签,并将其添加到滚动视图中。然后,scrollview作为子视图添加到self.view。我需要知道scrollview在屏幕上显示的时间。 请帮忙。提前谢谢。代码如下 - (IBAction)clickeMe:(id)sender { self.start=[NSDate date]; NSString *text="a very long text";
- (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];但是不起作用我已经尝试过了,但是在视图出现在屏幕上之前,选择器被调用了