1

所以我有一个定时延迟动作,这样当一个人按下按钮时,它会在设定的时间数字(5秒)后显示一个标签

-(IBAction)start{

Desc.text = @"Text appears";
[self performSelector:@selector(delay) withObject:nil afterDelay:5.0];

}

-(void)delay{

Desc2.text = @"Text to appear in 5 seconds";
[self performSelector:@selector(delayA) withObject:nil afterDelay:5.0];

}

至于我试图制作的下一行代码,不是在预定的时间间隔后出现标签,而是试图让 Button 在 5 秒内出现。

任何人都可以帮忙吗?

4

6 回答 6

0
UIButton *btn = [UIButton alloc] initWithFrame:[Desc2 frame]];

[btn setTitle: [Desc2 text] forState:UIControlStateNormal];

[self.view addSubview:btn];

此代码段创建UIButtonDesc2 所在的位置,UILabel并使用 Desc2 的内容设置按钮的标题。

您可以将它放在 delayA 方法中。

于 2012-09-17T10:13:23.747 回答
0
-(void)delayA{

UIButton *button = [[UIButton alloc] init];
button.frame = CGRectMake(x, y, width, height); //add the parameters
[self.view addSubview:button];
}

希望能帮助到你。快乐编码:)

于 2012-09-17T10:13:47.447 回答
0

您可以使用以下内容:

[NSTimer scheduledTimerWithTimeInterval:target:selector:userInfo:repeats:]
于 2012-09-17T10:20:04.307 回答
0

试试这个,

NSTimer *aTimer = [NSTimer timerWithTimeInterval:(5.0) target:self selector:@selector(timerFired:) userInfo:nil repeats:YES];
    NSRunLoop *runner = [NSRunLoop currentRunLoop];
    [runner addTimer:aTimer forMode: NSDefaultRunLoopMode];

并设置您要执行的操作

-(void)timerFired:(NSTimer *) theTimer
{
}
于 2012-09-17T10:22:46.710 回答
0

如果您只尝试显示和隐藏按钮,请使用 alpha 属性。

// show button
[self.yourButton setAlpha: 1]

// hide button
[self.yourButton setAlpha: 0];
于 2012-09-17T10:32:23.783 回答
0

首先您的 UIButton 必须隐藏,例如您的按钮名称是 btn1 然后在viewDidLoad:方法中编写此代码

- (void)viewDidLoad
{

    btn1.hidden = YES;

}

-(IBAction)start{
NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:5.0
                                             target:self
                                           selector:@selector(targetMethod:)
                                           userInfo:nil
                                            repeats:YES];
}
-(IBAction)targetMethod:(id)sender{
       btn1.hidden = NO;
}

要使用此代码,您可以在 xib 上拖放按钮并命名为 btn1 或如您所愿...

我希望,这个答案对你有帮助..

:)

于 2012-09-17T10:53:19.033 回答