我一直在尝试编写一个程序,在计时器触发后会出现一个按钮。计时器工作正常,触发事件也是如此(我已经用不同的事件对此进行了测试)。但是,我正在制作的按钮没有显示出来。此外,我希望按下按钮背景图像时,按下按钮并保持按钮。我试过让按钮只有背景颜色而不是图像,但这也不起作用。代码位于视图控制器中的Timer选择器中。感谢任何帮助。谢谢!
- (void)timerFireMethod:(NSTimer *)timer
{
Button = [UIButton buttonWithType:UIButtonTypeCustom];
Button.center = CGPointMake(self.view.frame.size.width/2, self.view.frame.size.height/2);
[Button setBackgroundImage:[UIImage imageNamed:@"buttonUnheldBGImage"]
forState:UIControlStateNormal];
[Button setBackgroundImage:[UIImage imageNamed:@"buttonHeldBGImage"]
forState:UIControlStateHighlighted];
[Button setTitle:@"Press and Hold" forState:UIControlStateNormal];
[Button addTarget:self action:@selector(aSelector:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:Button];
}
调用它的计时器类是:
- (void)timer
{
globalTimer = [NSTimer scheduledTimerWithTimeInterval:5
target:self
selector:@selector(timerFireMethod:)
userInfo:Nil
repeats:NO];
}
globalTimer是全球NSTimer
答案 0 :(得分:0)
你已经设置了按钮的中心,但你也需要它的框架,我相信按钮现在显示但是他的框架是(0,0)。
答案 1 :(得分:0)
您还必须为按钮设置尺寸。如果您希望它位于超级视图的中心,请执行以下操作:
CGRect buttonFrame = CGRectMake(self.view.frame.size.width/2-100,self.view.frame.size.height/2-100, 200,200);
Button.frame = buttonFrame;
中心属性非常适用于已经有大小的UI元素。
答案 2 :(得分:0)
只需替换前两行,
UIButton * Button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
Button.frame = CGRectMake(20, 200, 200, 200);