您的位置:首页 > 产品设计 > UI/UE

通过NSTimer看IPhone对@selector的函数如何传参数

2012-05-09 14:46 483 查看
 
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];  
   
if(oldView != nil)
    {
        [dict setObject:oldView forKey:@"oldView"]; 
    }
   
if(newView != nil)
    {
        [dict setObject:newView forKey:@"newView"]; 
    } 
    [NSTimer scheduledTimerWithTimeInterval:0.0 target:self
selector:@selector(onTimer:)
userInfo:dict repeats:NO];  
    [dict release];
 
 
- (void)onTimer:(NSTimer *)timer

{  
    UIView *oldView = [[timer
userInfo] objectForKey:@"oldView"];
    UIView *newView = [[timer
userInfo] objectForKey:@"newView"];  
    [UIView animateWithDuration:2.0  delay:0
                        options:UIViewAnimationOptionAllowUserInteraction
                     animations:^{  
                         oldView.alpha =
0.0; 
                         newView.alpha =
1.0;  
                     }  


从上可以看出,NSTimer在对@selector(onTimer:)传递参数时,将传参的对象储存在了NSTimer的userInfo的字典里,在-
(void)onTimer:(NSTimer *)timer中

通过取出该字典加以使用。

这个其实也就是iphone对@selector对象传参的通用的形式。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  iphone uiview timer delay