【问题标题】:start and stop button, need to disable and hide then reenable and visible开始和停止按钮,需要禁用和隐藏然后重新启用和可见
【发布时间】:2012-07-16 15:36:35
【问题描述】:

好的,我知道这是 b4 提出的一个问题,但是因为它应该很容易回答,所以我希望得到一个更好的答案。我在计时器上有一个开始和一个停止按钮。我希望在时钟运行时禁用播放按钮,并在时钟停止时启用播放按钮,反之亦然,但我也希望它在禁用时隐藏,所以有人可以告诉我禁用和隐藏按钮的代码最近被按下,然后在按下另一个时重新启用并可见。

【问题讨论】:

  • 将 IB 中的 IBAction 链接到按钮以进行新闻事件。然后只需使用一些布尔值和hidden 属性。

标签: iphone objective-c ios xcode ipad


【解决方案1】:

您应该拥有按钮的 IBOutlets,然后直接访问它们。不要忘记在 Xcode 上链接它们

@property (strong, nonatomic) IBOutlet UIButton *startButton;
@property (strong, nonatomic) IBOutlet UIButton *stopButton;

关于点击播放按钮的动作:

[self->stopButton setEnabled:YES];
[self->stopButton setHidden:NO];

[self->startButton setHidden:YES];
[self->startButton setEnabled:NO];

然后,当您点击停止按钮时:

[self->stopButton setEnabled:NO];
[self->stopButton setHidden:YES];

[self->startButton setHidden:NO];
[self->startButton setEnabled:YES];

【讨论】:

  • 在这种简单的情况下,我认为不需要@property。
  • 非常好,但是是的,@property 给它评分,它应该是 self->startButton not 。但是->,请以这种方式编辑它,因为这对我有用。
  • @comradsky 我编辑了答案以使用箭头,因为你说它有效。如果答案对您有用,请接受。
  • @TomaszSzulc 如果您通过从情节提要拖到 .m 文件来创建 Outlet,它会自动创建一个属性。
【解决方案2】:

在 XIB 中,您必须创建按钮并连接到 ViewController.h

interface 你必须有

IBOutlet UIButton *btn1;
IBOutlet UIButton *btn2;

-(IBAction)b1:(id)sender;
-(IBAction)b2:(id)sender;

implementation 中你必须这样写:

viewDidLoad

btn1.enabled = no;


-(IBAction)b1 {
    btn1.enabled = no;
    btn1.hidden = yes;

    btn2.enabled = yes;
    btn2.hidden = no;
}

 -(IBAction)b2 {
    btn2.enabled = no;
    btn2.hidden = yes;

    btn1.enabled = yes;
    btn1.hidden = no;
} 

我认为,hidden = yes 已经足够了

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-08-13
    • 1970-01-01
    • 2014-01-21
    • 2012-07-03
    • 2012-09-20
    • 1970-01-01
    • 1970-01-01
    • 2012-01-15
    相关资源
    最近更新 更多