将 UIButton 隐藏为 IBAction

Posted

技术标签:

【中文标题】将 UIButton 隐藏为 IBAction【英文标题】:Hiding UIButton as IBAction 【发布时间】:2012-07-30 18:57:01 【问题描述】:

通常隐藏 UIButton 并不难,但我将它设置为 IBAction 而不是 IBOutlet。这是必要的,因为当按下按钮时,会弹出文本,但我希望按钮消失。解决办法是什么?

【问题讨论】:

当您说“弹出文本”时,您的意思是警报 (UIAlertView) 吗? 我的意思是当按钮被按下时我有一个标签被设置为某个消息 【参考方案1】:

您可能像这样声明了您的 IBAction:

- (IBAction)myButtonAction;

应该是:

- (IBAction)myButtonAction:(id)sender;

因为那时你可以在方法中做

- (IBAction)myButtonAction:(id)sender

    if([sender respondsToSelector:@selector(setHidden:)])
        [sender setHidden:YES];

所有 IBAction 都可以支持将其发送者作为函数接收。但是,如果不同的 UI 元素调用该函数,它也会被隐藏。此外,使用上面的方法,您将无法取消隐藏按钮,如果您需要这样做,最好使用 IBOutlet - 在 5.0+ 中,您可以使用 weak 关键字不保留引用并在对象被销毁时自动为零,在 4.x 中,您只需要记住在 viewDidUnload 上将其设置为 nil。

【讨论】:

感谢它完美运行!现在我有另一个问题:在按下按钮之前,我有一些想要隐藏的按钮,但是在按下按钮之后,我希望其他按钮变得可见。我相信我可以处理第二部分,但我不确定如何将按钮最初设置为隐藏。 您应该真正考虑为此创建属性,为您要处理的每个 UILabel 的 IBOutlets。您可以使用 BOOL iVar 和 a 标志,这样您就知道您的应用处于什么状态。并使用属性来更新它们的值/隐藏/显示相应的内容 好吧,我只有一个 UILabel,对此我没有任何问题,只是我不确定如何在屏幕首次加载时隐藏某些按钮

以上是关于将 UIButton 隐藏为 IBAction的主要内容,如果未能解决你的问题,请参考以下文章

隐藏 UIButton 标题

将 UIButton 放置在与 UITabBar 相同的空间中(隐藏时)

隐藏以编程方式为标签创建的 UIButton

Xcode:检查 UIButton 是不是隐藏,使用 NSUserDefaults

UIButton 为状态正常设置图像,在不同状态下隐藏该图像

UIButton 在运行时更改尺寸