2013-12-12 57 views
1

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

- (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实际上是在屏幕上出现滚动视图之前调用。

+1

代码请。 。 。 –

+0

试用一些代码,然后我们可以帮助你更好。 – mAc

+0

你想知道创建长标签所需的时间吗? – jailani

回答

0

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

这就像php或其他语言。

+0

我试过这个,但选择器被调用之前,视图出现在屏幕上 –

+3

使用“PerformSelectorOnMainThread”,而不是“PerformSelector” –

+0

雅试过,但不工作 –