如何在预定的时间间隔内显示UIButton?

时间:2012-09-17 10:04:35

标签: iphone objective-c ios xcode

所以我有一个定时延迟动作,以便当按下按钮时它会在设定的时间(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秒内出现,而不是标签。

有人可以帮忙吗?

6 个答案:

答案 0 :(得分:0)

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

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

[self.view addSubview:btn];

此代码段代码创建了一个UIButton,其中包含了Desc2 UILabel,并使用Desc2设置了按钮的标题。

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

答案 1 :(得分:0)

-(void)delayA{

UIButton *button = [[UIButton alloc] init];
button.frame = CGRectMake(x, y, width, height); //add the parameters
[self.view addSubview:button];
}
希望它有所帮助。快乐的编码:)

答案 2 :(得分:0)

您可以使用以下内容:

[NSTimer scheduledTimerWithTimeInterval:target:selector:userInfo:repeats:]

答案 3 :(得分: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
{
}

答案 4 :(得分:0)

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

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

// hide button
[self.yourButton setAlpha: 0];

答案 5 :(得分: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或者您希望...

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

:)